關於ASP.NET自訂控制項中子控制項的HTML代碼保持

來源:互聯網
上載者:User
asp.net|控制項 ASP.NET自訂控制項是個很好的模型,可以在網頁中象堆積木般構築軟體,可以

使用大量的第三方控制項來完成自己不擅長的功能。但自訂控制項編寫起來有一定難度。

一直以來,如何在ASPX設計時頁面中保持子控制項的產生代碼問題因擾著我。近段研究了

一下微軟的IE Webcontrol中的TreeView控制項,終於搞清楚了此問題,不敢獨享,特將它

總結了一下,並做了個樣本工程,放在我網站上(http://www.aspxcontrol.com/blog)供網友

下載。
總結起來,要點如下:
1.將子控制項單獨定義為類,如public class noteItem{},為了不讓此子控制項在整個DLL被

拖入工具箱時不顯示,可以使用此特性:[ToolboxItem(false)]
2.子控制項應為集合類,引用System.Collection ,定義:
public class noteItemCollection:System.Collections.CollectionBase
3.實現成員:
Add(),this[int]。
4.在主類中定義加入特性:
[DesignerSerializationvisibility(DesignerSerializationvisibility.Content)]
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
[Editor(typeof(CollectionEditor),typeof(UITypeEditor))]
如果實現了自己的編輯器,可將typeof(CollectionEditor)換成自己的,可以是WinForm

的,可參考TreeView源碼。
5.在主類中定義一集合變數和一ArrayList變數,如:
private noteItemCollection _notes;
private ArrayList al;
在建構函式內寫:
{
al = new ArrayList();
_notes = new noteItemCollection(al);
}
這樣,在加了子控制項後,就會在ASPX的HTML頁面中加入類似:<waki:sample>
<waki:Note>
<waki:item id="1"></waki:item>
<waki:item id="2"></waki:item>
</waki:Note>
</waki:sample>這樣的代碼了,就可以避免讓使用者自己輸入XML代碼了。





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.