Asp.Net Ajax (2)---ScriptManager
来源:互联网 发布:windows安装器怎么用 编辑:程序博客网 时间:2024/05/22 08:11
Asp.Net Ajax编程时,首先就得托一个ScriptManager,尽管不对它做任何操作。添加后就能正确运行,不添加就提示有错。具体为什么呢?本文就ScriptManager控件做详细介绍。
这也就是尽管控件不做任何操作,还需把它引过来。
web.config
说明: 在异步处理中发生错误,想要跳转到指定的页面时,只需修改AllowCustomErrorsRedirect属性值,且跳转页面是在.config文件中定义的。
2),捕获错误
说明:
AsyncPostBackErrorMessage属相设置发送到浏览器的消息提示。如上实例,在浏览器页面就能显示错误的信息。
说明:
1,上面两个代码都能弹出提示框。RegisterStartupScript属相为控件UpdatePanel注册一个启动脚本块,并将该脚本添加到页面中;RegisterClientScriptBlock属性在<form>开始标记之后呈现一个Script该脚本被指定为字符串参数。
2,区别:由于RegisterClientScriptBlock属性是在<form>标记开始之后使用的,由程序执行顺序可知RegisterClientScriptBlock设置的弹出框内容肯定显示在RegisterStartupScript设置的弹出框之前。
为什么要用ScriptManager
ScriptManager控件会向页面注册Microsoft Ajax library的脚本。使客户端脚本能够使用类型系统扩展并支持部分页呈现和Web服务调用这样的功能。这也就是尽管控件不做任何操作,还需把它引过来。
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
ScriptManager使用技巧
1,指定错误处理
1),出错跳转到指定页面<form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager2" 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>
protected void Button1_Click(object sender, EventArgs e) { throw new Exception(); }
web.config
<system.web><compilation debug="false" targetFramework="4.0"/><customErrors mode="On" defaultRedirect="Error.aspx"></customErrors></system.web>
说明: 在异步处理中发生错误,想要跳转到指定的页面时,只需修改AllowCustomErrorsRedirect属性值,且跳转页面是在.config文件中定义的。
2),捕获错误
<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><script type="text/javascript" language="javascript">Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, e){e.set_errorHandled(true);$get("error").innerHTML = e.get_error().message;});</script>
protected void Button1_Click(object sender, EventArgs e){throw new Exception("Error!");}protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e){ScriptManager.GetCurrent(this).AsyncPostBackErrorMessage = e.Exception.Message;}
说明:
AsyncPostBackErrorMessage属相设置发送到浏览器的消息提示。如上实例,在浏览器页面就能显示错误的信息。
2,弹出框
如果使用了ScriptManager和UpdatePanel控件,则以往的弹出框Reseponse.Write()就不管用了。那么如果想要弹出提示框该怎么办?,既然微软能把Ajax技术封装成了控件,那么相关的信息肯定都在控件中能够找到。ScriptManager就能解决弹出框的问题。protected void Button1_Click(object sender, EventArgs e){ ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdatePanel1", "alert(1)", true); ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1, this.GetType(), "UpdatePanel1", "alert(2)", true);}
说明:
1,上面两个代码都能弹出提示框。RegisterStartupScript属相为控件UpdatePanel注册一个启动脚本块,并将该脚本添加到页面中;RegisterClientScriptBlock属性在<form>开始标记之后呈现一个Script该脚本被指定为字符串参数。
2,区别:由于RegisterClientScriptBlock属性是在<form>标记开始之后使用的,由程序执行顺序可知RegisterClientScriptBlock设置的弹出框内容肯定显示在RegisterStartupScript设置的弹出框之前。
总结
ScriptManager是Asp.Net的服务器控件。管理客户端组件、局部页刷新等功能,在使用其他Ajax Extension控件前首先要添加ScriptManger控件
- Asp.Net Ajax (2)---ScriptManager
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- ASP.NET AJAX入门系列(2):使用ScriptManager控件
- C#连接mysql (vs2010)
- 【转】vector向量容器 基本操作
- 关于MSP430F149的ADC转换过程详解
- Smack:概述
- Flex datagrid 中实现combobox联动
- Asp.Net Ajax (2)---ScriptManager
- 技术团队新官上任之高层篇
- PHP 魔术方法__set() __get() 方法详解
- 安装matlab 7.0启动出现错误 runtime error解决办法
- SQL优化--分片思想的运用
- word应用技巧
- linux find 2
- 如何组建一个优秀的实施团队
- sqlplus / as sysdba ORA-012560:TNS:协议适配器错误