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控件的經常使用屬性例如以下所看到的:

AllowCustomErrorRedirect:指明在異步回發過程中是否進行自己定義錯誤重定向。

AsyncPostBackTimeout:指定異步回發的超時事件,默覺得90秒。

EnablePageMethods:是否啟用頁面方法,默認值為false

EnablePartialRendering:在支持的瀏覽器上為UpdatePanel控件啟用異步回發。默認值為True

LoadScriptsBeforeUI:指定在瀏覽器中呈現UI之前是否應載入腳本引用。

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("錯誤"); //拋出異常

            }

        }

上述代碼通過文本框中的輸入進行字體控制,當輸入一個數字字符串並失去焦點時,則會觸發改事件並執行對應的代碼,執行后如圖16-10和圖16-11所看到的。

  

16-10  輸入字符大小                            圖16-11  調整字體大小

2.捕獲異常

當頁面回傳發生異常時,則會觸發AsyncPostBackError事件,演示樣例代碼例如以下所看到的。

        protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)

        {

            ScriptManager1.AsyncPostBackErrorMessage = "回傳發生異常:" + e.Exception.Message;

        }

AsyncPostBackError事件的觸發依賴於AllowCustomErrorsRedirct屬性、AsyncPostBackErrorMessage屬性和Web.config中的<customErrors>配置節。當中,AllowCustomErrorsRedirct屬性指明在異步回發過程中是否進行自己定義錯誤重定向,而AsyncPostBackErrorMessage屬性指明當server上發生未處理異常時要發送到client的錯誤消息。演示樣例代碼例如以下所看到的。

        protected void Button1_Click(object sender, EventArgs e)

        {

            throw new ArgumentException(); //拋出異常

        }

上述代碼當單擊button控件時,則會拋出一個異常,ScriptManger控件可以捕獲異常並輸出異常,執行代碼后系統會提示異常“回傳發生異常:值不在預期范圍內”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM