ScriptManager 控制項包括在ASP.NET 2.0 AJAX Extensions中,它用來處理頁面上的所有組件以及頁面局部更新,產生相關的用戶端代理指令碼以便能夠在JavaScript中訪問Web Service,所有需要支援ASP.NET AJAX的ASP.NET頁面上有且只能有一個ScriptManager控制項。在ScriptManager控制項中我們可以指定需要的指令碼庫,或者指定通過JS來調用的Web Service,以及調用AuthenticationService和ProfileService,還有分頁錯誤處理等。
主要內容 1 .控制項概述 2 .一個簡單的樣本 3 .用戶端指令碼模式 4 .錯誤處理 5 .Services屬性 6 .Scripts屬性
一.控制項概述 ScriptManager 控制項包括在ASP.NET 2.0 AJAX Extensions中,它用來處理頁面上的所有組件以及頁面局部更新,產生相關的用戶端代理指令碼以便能夠在JavaScript中訪問Web Service,所有需要支援ASP.NET AJAX的ASP.NET頁面上有且只能有一個ScriptManager控制項。在ScriptManager控制項中我們可以指定需要的指令碼庫,或者指定通過JS來調用的Web Service,還可以指定分頁錯誤處理等。 使用<asp:ScriptManager/>來定義一個ScriptManager,簡單的ScriptManager定義形式:
屬性和方法如下:
| 屬性/方法 |
描述 |
| AllowCustomError |
和Web.config中的自訂錯誤配置區<customErrors>相聯絡,是否使用它,預設值為true |
| AsyncPostBackErrorMessage |
非同步回傳發生錯誤時的自訂提示錯誤資訊, |
| AsyncPostBackTimeout |
非同步回傳時逾時限制,預設值為90,單位為秒 |
| EnablePartialRendering |
是否支援頁面的局部更新,預設值為True,一般不需要修改 |
| ScriptMode |
指定ScriptManager發送到用戶端的指令碼的模式,有四種模式:Auto,Inherit,Debug,Release,預設值為Auto,後面會仔細說到。 |
| ScriptPath |
設定所有的指令碼塊的根目錄,作為全域屬性,包括自訂的指令碼塊或者引用第三方的指令碼塊。如果在Scripts中的<asp:ScriptReference/>標籤中設定了Path屬性,它將覆蓋該屬性。 |
| OnAsyncPostBackError |
非同步回傳發生異常時的服務端處理函數,在這裡可以捕獲一場資訊並作相應的處理。 |
| OnResolveScriptReference |
指定ResolveScriptReference事件的伺服器端處理函數,在該函數中可以修改某一條指令碼的相關資訊如路徑、版本等。 |
二.一個簡單的樣本 這個例子其實是UpdatePanel樣本,在頁面中加入了日期控制項和一個下拉框,根據下拉框選擇的不同,日期控制項背景變為不同的顏色。範例程式碼如下: <% @ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
< script runat ="server" >
void DropDownSelection_Change(Object sender, EventArgs e)
{
Calendar1.DayStyle.BackColor =
System.Drawing.Color.FromName(ColorList.SelectedItem.Value);
}
</ script >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head id ="Head1" runat ="server" >
< title > ScriptManager Example </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:ScriptManager ID ="ScriptManager1"
runat ="server" >
</ asp:ScriptManager >
< asp:UpdatePanel