AjaxControlToolkit 十大常用元数据
1. RequiredProperty 必须声明的属性,不然会报错
2. ClientScriptResource 提供客户端脚本资源, 自动引用GetScriptDescriptors方法将会获取其资源文件,我们无需重写此方法
3. ClientCssResource 提供css样式资源,自动引用
4. RequiredScript 必要的脚本资源,由于一些客户端脚本存在着依赖的关系,所以有时候需要引用别的脚本,做法则是定义一个静态类,然后在静态类中标识ClientScriptResource
5. ExtenderControlProperty 标识为客户端属性
6. ClientPropertyName 同上,标识为客户端属性,不同的是其可以自定义客户端属性名称
7. ElementReference 标识为此属性为元素ID(即获取属性为对象),如DragPanelExtender 的DragHandleID属性,获取的非Panel的ID值,而是其对象,即($get(“panel”)
8. ExtenderControlEvent 标识为客户端事件(注意不要与ExtenderControlProperty同时使用,不然会默认标识为ExtenderControlProperty)
9. ExtenderControlMethod 标识方法为客户端回调发方法,必须实现IcallbackEventHandler接口
10. TargetControlType 此为asp.net ajax提供的元数据,标识Extender控件扩展的控件类型
以上大多数属性设置的作用都是为了呈现,只为了方便调用脚本.真正的实现还是需要脚本
以上元数据帮我们省了很多功夫,元数据也再次发挥了其作用,一个很好用的东西
AjaxControlToolkit 三大基类
Asp.net ajax提供了IextenderControl和IscriptControl接口,两个接口都可以实现扩展,只是方式不同,第一个需要与原有控件搭配使用,第二个借口则是直接继承自原有控件进行扩展.
同时Asp.net ajax提供了ExtenderControl和ScriptControl抽象类.这个做法就如同asp.net1.1中复合控件需要实现InamingContainer接口,asp.net2.0中则添加了CompositeControl类提供了便利,但还是需要实现接口. AjaxControlToolkit对两个类进行再扩展,其提供了ExtenderControlBase和ScriptControlBase.其巧妙了运用了.net元数据的特性,使得后端控件的设置额外的方便,不需要我们再实现IextenderControl等接口,其各自提供了ScriptPath属性,可以引用外部脚本文件,其还提供了一个IclientStateManager接口,目的就是为了保存前台js操作以后的数据,然后可以回传给后台, ExtenderControl并没有实现IclientStateManager接口,但也提供了ClientState属性. ScriptControl还实现了ICallbackEventHandler接口,可以实现客户端回调.
另外第三个类则是ScriptUserControl类,其继承了UserControl类,实现的内容与ScriptControl相似,用户控件可以继承此类进行扩展.以上的功能大多需要脚本进行配合才可以灵活的使用