微軟AJAX 教學系列第一講:ScriptManager控制項

來源:互聯網
上載者:User

     本文是翻譯 http://www.asp.net/上推出了最新的AJAX系列教程.由於本人第一次進行翻譯,有翻譯不準,不正確的地方,望大家批評指正 .

                                                                                                                                                                                 笑Q
    在上一篇文章中.我們通過簡單小例子介紹了頁面的局部重新整理.在這篇文章中.我們介紹下MicroSoft AJAX最重要控制項之一的ScriptMananger的相關屬性和方法
      1.用戶端的相關屬性

 屬性         類型 描述
AllowCustomeErrorsRedirect     Bool     定義是否使用webconfig中自訂的錯誤處理
AsyncPostBackErrorMessage String 定義當error發生的時候在用戶端轉譯的錯誤資訊
AsyncPostBackTimeOut Int32 擷取或設定一個值,該值指示在未收到響應時非同步回傳逾時前的時間(以秒為單位)。
EnableScriptGlobalization Bool 擷取或設定一個值,該值指示 ScriptManager 控制項是否呈現支援分析地區性特定的資訊並設定其格式的指令碼。
EnableScriptLocalization Bool 擷取或設定一個值,該值指示 ScriptManager 控制項是否呈現指令檔的語言版本。
ScriptLoadTimeout Int32 定義裝在用戶端指令碼的最大時間.
ScriptMode Enum (Auto, Debug, Release, Inherit) 擷取或設定一個值,以指定是呈現用戶端指令碼庫的調試版本還是發布版本。
ScriptPath String 擷取或設定位置的根路徑,該位置用來建立指向 ASP.NET AJAX 和自訂指令檔的路徑。

    2):背景相關屬性

 屬性         類型 描述
AuthenticationService AuthenticationService-Manager 擷取與當前 ScriptManager 執行個體關聯的 AuthenticationServiceManager 對象。
IsDebuggingEnabled Bool 擷取一個指示是否呈現用戶端指令碼庫的調試版本的值
IsInAsyncPostback Bool 擷取一個指示是否在部分呈現模式下執行當前回傳的值。
ProfileService ProfileServiceManager 擷取與當前 ScriptManager 執行個體關聯的 ProfileServiceManager 對象。
Scripts Collection<ScriptReference> 擷取一個包含 ScriptReference 對象(每個對象代表一個呈現給用戶端的指令檔)的 ScriptReferenceCollection 對象。
Services Collection<ServiceReference> 擷取一個 ServiceReferenceCollection 對象,該對象包含 ASP.NET 在用戶端上針對 AJAX 功能而公開的每個 Web 服務的 ServiceReference 對象。
SupportsPartialRendering Bool 擷取一個指示用戶端是否支援部分頁面呈現的值。

    3)scriptManager的相關方法

Name Type 描述
SetFocus(string) Void 請求結束時,將瀏覽器焦點設定為指定控制項。

    4)ScriptManager的子項

標籤 描述
<AuthenticationService> 提供 ASP.NET authentication service.的詳細執行個體
<ProfileService> 提供 ASP.NET profiling service.的詳細執行個體
<Scripts> 提供額外的Script指令碼引用
<asp:ScriptReference> 指定特別的Script指令碼引用
<Service> 擷取一個 ServiceReferenceCollection 對象,該對象包含 ASP.NET 在用戶端上針對 AJAX 功能而公開的每個 Web 服務的 ServiceReference 對象。
<asp:ServiceReference>

    ScriptManager控制項是ASP.NET AJAX Extensions的核心.它提供了訪問指令碼庫(包括其他擴充的指令碼類型系統)的訪問能力.它支援網頁的部分呈現功能,同時也提供了對其他ASP.NET WebService(像Authentication ,Profiling,其他WebServices)的支援. 另外.ScriptManager控制項支援就用戶端指令碼全球化和本地化的支援.
      提供可以選擇和追加的指令碼
     儘管ASP.NET 2.0 AJAX Extensions 在調試和發行的版本中包含整個指令碼代碼. 開發人員可以像註冊其他的指令碼一樣自由的設定自訂的指令檔. 
    為了重載預設的內建指令碼.你可以在ScriptManager類中通過註冊 ResolveScriptReference 事件來實現.當這個方法被調用的時候.事件處理器就會自動的改變Script的路徑,ScriptManager 就會發送不同的或者你自訂的指令碼的副本到用戶端/
    UpdatePanels的自訂錯誤處理
     儘管更新是由UpdatePanel 控制項觸發的.但是錯誤的處理和自訂錯誤資訊還是通過ScriptManager控制項來處理的.這個是通過頁面上的AsyncPostBackError來呈現異常處理邏輯的.你可以通過AsyncPostBackErrorMessage屬性來設定顯示的錯誤資訊.
      當然你可以通過用戶端的自訂錯誤處理機制.
     例如:Listing 5: Client-side script to display custom errors

<script type=”text/javascript”>
    <!--  
    Sys.WebForms.PageRequestManager.getInstance().add_EndRequest( Request_End);
    function
 Request_End(sender, args) 
        

            if (args.get_error() !=
 undefined) 
                

                    var errorMessage =
 “”; 
                    if (args.get_response().get_statusCode() == “200
”)
                    
{
                        errorMessage =
 args.get_error().message; 
                    }
 
                    else
 
                    

                            // the server wasn’t the problem errorMessage = “An unknown error occurred”; 

                    }  
                    // do something with the errorMessage here. 

                    // now make sure the system knows we handled the error.
                    args.set_errorHandled(true ); 
                }
 
        }
 
        //--> 

</script>

    方法相當簡單.上面的script指令碼註冊了在非同步呼叫結束時的回調.它會檢查是否有錯誤發生.如果有,擷取錯誤的詳細資料並通知runtime錯誤已經被自訂指令碼處理.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.