AJAX——ASP.NET AJAX框架(一)ScriptManager
前边我们针对以XMLHttpRequest为核心学习了AJAX的相关知识,接下来,重点学习一下微软在ASP.NET中的AJAX的框架的基础学习,主要是AJAXExtension中的几个控件,如下图:
而,这篇博客,我们来重点看一下ScriptManager的学习。而我主要是通过他的属性来进行学习的。
一,概述:ScriptManager控件包括在ASP.NET2.0以上版本的AJAXExtensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问WebService。所有需要支持ASP.NET AJAX的ASP.NET页面上有且只能有一个ScriptManager控件。 如下(): <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
简单理解就是每一个需要异步更新的页面,最开始都需要添加这个控件,保证异步更新的顺利完成。
二,下边看一下它的几个常用属性:
ScriptMode的属性值
认真阅读上边的属性和方法,通过实践来了解,就非常容易了,这里我来写其中几个例子。 1,AllowCustomErrorsRedirect属性,当它设为true时就是利用我们web.config的<customErrors>指向的错误页面,如果程序出现了错误,则直接跳转到指定的错误页面。我们来前代码: 前台代码:
<form id="form1" runat="server">
<%--错误页配置--%>
<%--指定AllowCustomErrorsRedirect的属性为true --%>
<asp:ScriptManager ID="ScriptManager1" runat="server" AllowCustomErrorsRedirect="true">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
后台C#代码: protected void Button1_Click(object sender,EventArgs e)
{
throw new Exception("出现错误了");
}
Web.config配置: <!--错误页配置,本项目中提前设置好的错误页-->
<customErrors mode="On" defaultRedirect="~/Error.aspx"></customErrors>
这样设置后当程序出现错误时,就会自动跳转到我们设置好的错误页上。
2,AsyncPostBackErrorMessage和AsyncPostBackError这两个属性,主要是针对错误信息进行处理的。对应的方法为OnAsyncPostBackError(当发生异步通讯错误时)。看这个例子吧: 前台代码: <body>
<form id="form1" runat="server">
<%--AllowCustomErrorsRedirect属性设置为false,配合后台的自定义错误使用--%>
<asp:ScriptManager ID="ScriptManager1" runat="server" AllowCustomErrorsRedirect="false" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<%--自定义错误处理--%>
<div id="error"></div>
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender,e)
{
e.set_errorHandled(true);
//将信息显示到上面的div区块中innerHTML,这里可以设置默认的错误信息
$get("error").innerHTML = "Sorry,an error has occurred: " + e.get_error().message;
setTimeout(function(){ $get("error").innerHTML = ""; },3000);//3秒后变为空
});
</script>
</form>
</body>
protected void Button1_Click(object sender,EventArgs e)
{
//自定义错误处理,配合web.config文件中的错误配置节点customErrors(设置为on的时候才生效,同时还要制定错误页)和AllowCustomErrorsRedirect(是否允许customErrors)使用
throw new Exception("错误信息提示!");
}
//异步刷新出现错误时,触发的事件
protected void ScriptManager1_AsyncPostBackError(object sender,AsyncPostBackErrorEventArgs e)
{
//客户端接受到的错误的信息
ScriptManager.GetCurrent(this).AsyncPostBackErrorMessage = e.Exception.Message;
}
这样我们程序出错时,就出显示出错误信息! 这里我举了两个例子,来学习ScriptManager的属性方法,其他的也需要我们通过实践,来理解这些属性和方法的意义,这样我们才能更好的掌握。这里英文相对来说多了些,还是非常需要耐下心来认真读英文理解。总而言之,这里的控件学习和我们的控件学习没有什么区别,几个属性,方法完事。重要的是我们用一用,这样就能再用了,里边的属性方法不会了,我们可以有针对性的上网查一下!!!下一篇,学习一个非常重要的控件UpdatePanle控件。其实这篇博客里边也涉及到了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |