?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

尊億娛樂網址:實現類似“添加擴展程序…”的設計時支持

?

Ajax Control Toolkit這個控件庫內包孕一些擴展控件,使用這些擴展控件,可以異常方便的為通俗的控件添加Ajax效果,例如,使用AutoCompleteExtender控件,可以為文本框添加自動完成的ajax效果。當然,這并不是本文想評論爭論的內容。

將Ajax Control尊億娛樂網址 Toolkit加入到Visual Studio 2008的對象箱中,并打開一個新的aspx文件,向里面拖入一個TextBox。這時,有趣的工作發生了,在TextBox的SmartTasks面板里,竟然呈現了一個“添加擴展法度榜樣…”的鏈接!我又試著拖入一個Button,一個Panel,無一例外的,每個控件的SmartTasks面板的底部都呈現了“添加擴展法度榜樣…”的鏈接。

近來我正盤算把保存、刪除、關閉頁面等功能抽象成動作,每一種動作對應一個自定義的Web控件,將某個動作控件附加到目標控件(例如Button)上面之后,目標控件就擁有了諸如保存、刪除、關閉頁面的功能。若何在WebForm設計器里為一個Button控件方便地附加動作?我想要的恰是類似“添加擴展法度榜樣…”這樣的效果。

開拓過自定義辦事器控件的同伙應該知道,假如想給控件添加SmartTasks,必要重寫ControlDesigner的ActionLists屬性,并實現自己的DesignerActionList。顯然,一個TextBox并不知道AjaxControlToolkit的存在,以是“添加擴展法度榜樣…”這么一個DesignerActionMethodItem并不是它加進來的。那么,.net framework是否供給了某種接口,可以讓我們為其余控件“動態的注入”DesignerActionItem呢?

經由過程對AjaxControlT尊億娛樂網址oolKit.dll的鉆研,我發明這些擴展控件的Designer并不認真供給“添加擴展法度榜樣”這個Action,他們只認真供給響應擴展法度榜樣對應的擴展內容,以是只能從Visual studio的webform designer作為進口來鉆研。用reflector打開Microsoft Visual Studio 9.0\Common7\IDE\Microsoft.Web.Design.Client.dll,找到了IWebSmartTasksProvider接口,該接口有一個GetDesignerActionLists的措施,這個措施的返回值應該便是SmartTasks面板里顯示的內容了。這個接口有3個實現類,DataFormDesigner、DataFormXslValueOfDesigner、ElementDesigner。從這三個類的命名上可以揣摸,ElementDesigner應該尊億娛樂網址是用的最多的實現類了。ElementDesigner的GetDesignerActionLists的措施實現如下:

1: DesignerActionListCollection IWebSmartTasksProvider.GetDesignerActionLists()

2: {

3:DesignerActionListCollection componentActions = null;

4:if (this.Designer != null)

5:{

6:DesignerActionService service = (DesignerActionService) base.DesignerHost.GetService(typeof(DesignerActionService));

7:if (service != null)

8:{

9:componentActions = service.GetComponentActions(this.Designer.Component);

10:}

11:}

12:if (co尊億娛樂網址mponentActions == null)

13:{

14:componentActions = new DesignerActionListCollectio尊億娛樂網址n();

15:}

16:return componentActions;

17: }

18:

19:

20:

21:

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

浙江体彩20选5开奖号 青海快三昨天天走势 江苏7位数开奖结果图电脑版 棋牌游戏大全 内蒙古11选5时时彩 上海快三快三走势图一定 贵州麻将正宗捉鸡麻将 新十一选五走势图江苏 福彩3d大号走势图福 a股上证指数是什么意思 辽宁快乐十二走势图电脑版 黑龙江省p62开奖查询 沪市股票指数 山西11选五5开奖结果走势图 欧冠冠军联赛历届冠 广西快乐十分每天开 福彩排列七的玩法规则