MS ASP.Net Ajax 服務端擴展
MS ASP.Net Ajax 提供了兩種擴展方向,IScriptControl和IExtenderControl。MS的AjaxControlToolkit中的提供的控件均是按照這兩種方式進行擴展的,AjaxControlToolkit中有兩個重要的類,ScriptControlBase和ExtenderControlBase,也是所有的Extender的基類,分別實現了IScriptControl和IExtenderControl接口。
1、IScriptControl:為服務端控件添加客戶端的行為能力,從ScriptControl進行擴展的前提是能夠修改原有的控件,從而為控件添加豐富的客戶端行為。 IScriptControl提供了兩個方法:
System.Collections.Generic.IEnumerable<ScriptReference> GetScriptReferences(),返回一個ScriptReference集合,描述控件所引用的所有腳本文件。
System.Collections.Generic.IEnumerable<ScriptDescriptor> GetScriptDescriptors(),返回一個ScriptDescriptor集合,描述要創建的客戶端的對象的集合,包括如何創建客戶端對象,設置客戶端對象的屬性,以及如何處理客戶端事件,總之,在這里描述如何創建并初始化客戶端對象。
2、IExtenderControl:為現有的的服務端控件添加客戶端行為,從ExtenderControl進行擴展,可以在不修改現有控件的情況下,為控件添加豐富的客戶端行為。IExtenderControl接口也提供了兩個方法:
System.Collections.Generic.IEnumerable<ScriptReference> GetScriptReferences(),和IScriptControl一樣,返回要引用的腳本集合。
System.Collections.Generic.IEnumerable<ScriptDescriptor> GetScriptDescriptors(System.Web.UI.Control targetControl),也是返回如何創建客戶端對象的腳本描述集合,如何創建并初始化客戶端對象。和IScriptControl不同的是,IExtenderControl的這個方法需要一個參數,targetControl,客戶端對象要關聯的控件,也就是說,這里創建的客戶端對象不是給自己用的,而是給targetControl用的。當然,一個targetControl可以有多個ExtenderControl,即,可以使用多個ExtenderControl來對一個targetControl進行擴展。
如果可以修改現有的控件,則可以實現IScriptControl接口進行擴展,相反,如果不修改現有的控件,則可以實現IExtenderControl接口進行擴展。
張志敏所有文章遵循創作共用版權協議,要求署名、非商業 、保持一致。在滿足創作共用版權協議的基礎上可以轉載,但請以超鏈接形式注明出處。
本博客已經遷移到 GitHub , 圍觀地址: https://beginor.github.io/
浙公網安備 33010602011771號