ScriptManager的用法

ScriptManager微软出的无刷新的控件,在数据量不是非常大的时候用起来真的很方便
脚本管理控件(ScriptManger)是ASP.NET AJAX中非常重要的控件,通过使用ScriptManger能够进行整个页面的局部更新的管理。ScriptManger用来处理页面上局部更新,同时生成相关的代理脚本以便能够通过JavaScript访问Web Service。
ScriptManger只能在页面中被使用一次,这也就是说每个页面只能使用一个ScriptManger控件,ScriptManger控件用来进行该页面的全局管理。创建一个ScriptManger控件后系统自动生成HTML代码,示例代码如下所示。
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
ScriptManger控件用户整个页面的局部更新管理,ScriptManger控件的常用属性如下所示:
q AllowCustomErrorRedirect:指明在异步回发过程中是否进行自定义错误重定向。
q AsyncPostBackTimeout:指定异步回发的超时事件,默认为90秒。
q EnablePageMethods:是否启用页面方法,默认值为false。
q EnablePartialRendering:在支持的浏览器上为UpdatePanel控件启用异步回发。默认值为True。
q LoadScriptsBeforeUI:指定在浏览器中呈现UI之前是否应加载脚本引用。
q ScriptMode:指定要在多个类型时可加载的脚本类型,默认为Auto。
在AJAX应用中,ScriptManger控件基本不需要配置就能够使用。因为ScriptManger控件通常需要同其他AJAX控件搭配使用,在AJAX应用程序中,ScriptManger控件就相当于一个总指挥官,这个总指挥官只是进行指挥,而不进行实际的操作。
1.使用ScriptManger
ScriptManger控件在页面中相当于指挥的功能,如果需要使用AJAX的其他控件,就必须使用ScriptManger控件并且页面中只能包含一个ScriptManger控件。示例代码如下所示。
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server" Text="这是一串字符" Font-Size="12px"></asp:Label>
                <br /><br />
                <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"
                ontextchanged="TextBox1_TextChanged"></asp:TextBox>
                字符的大小(px)
            </ContentTemplate>
        </asp:UpdatePanel>  
    </div>
    </form>
</body>
上述代码创建了一个ScriptManger控件和一个UpdatePanel控件用于AJAX应用开发。在UpdatePanel控件中,包含一个Label标签控件和一个TextBox文本框控件,当文本框控件的内容被更改时,则会触发TextBox1_TextChanged事件。TextChanged事件相应的CS代码如下所示。
       protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                Label1.Font.Size = FontUnit.Point(Convert.ToInt32(TextBox1.Text)); //改变字体
            }
            catch
            {
                Response.Write("错误"); //抛出异常
            }
        }

2.捕获异常
当页面回传发生异常时,则会触发AsyncPostBackError事件,示例代码如下所示。
        protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
        {
            ScriptManager1.AsyncPostBackErrorMessage = "回传发生异常:" + e.Exception.Message;
        }
AsyncPostBackError事件的触发依赖于AllowCustomErrorsRedirct属性、AsyncPostBackErrorMessage属性和Web.config中的<customErrors>配置节。其中,AllowCustomErrorsRedirct属性指明在异步回发过程中是否进行自定义错误重定向,而AsyncPostBackErrorMessage属性指明当服务器上发生未处理异常时要发送到客户端的错误消息。示例代码如下所示。
        protected void Button1_Click(object sender, EventArgs e)
        {
            throw new ArgumentException(); //抛出异常
        }
上述代码当单击按钮控件时,则会抛出一个异常,ScriptManger控件能够捕获异常并输出异常,运行代码后系统会提示异常“回传发生异常:值不在预期范围内”。

你可能感兴趣的:(JavaScript,Ajax,Web,UI,asp.net)