程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET控件開發基礎(16)

ASP.NET控件開發基礎(16)

編輯:關於ASP.NET

上一篇說要對以前進行補充,那個補充就先留著吧.寫總結比較累,所以這篇為第16篇,第15篇先留著

這次我們繼續討論.主題是模板控件,模板控件將是復雜控件的起步

1.asp.net內置的模板控件,了解模板控件

如下圖,以下為asp.net內置的模板控件

上圖的控件一方面是模板控件,另一方面又是數據綁定控件.這裡我們暫且不討論如何實現數據綁定.

使用上面控件的話,應該熟悉控件存在著不同的模板,如下圖Repeater控件的模板類型.

在不同模板內你可以定義控件顯示內容會呈現不同效果.典型的運用就是GridView,其呈現代碼會是一個表格代碼,而Repeater則是自定義的.其實其是內部已經實現了的,暫且先不管這些.下面一步步看下來如何實現.

2.實現模板控件

2.1簡單實現模板控件(靜態模板)

(1)模板控件為特殊的復合控件,你還是需要實現INamingContainer接口,因為在模板屬性的內容是為子控件集合添加到模板控件中,為保證控件具有唯一標識符.其實現將在CreateChildControls方法中創建子控件.

asp.net2.0中可以直接繼續CompositeControl就可

(2)定義控件屬性

模板屬性為System.Web.UI.ITemplate 接口,此接口有一InstantiateIn 方法 將在下面分析

上一篇我們說明了控件內部屬性和控件的區別,模板並非控件而是屬性,我們在屬性浏覽器中並未看到此屬性,是因為我們為其加了元數據,作為內部屬性使用

定義模板屬性方法如下

//聲明變量
     private ITemplate _itemTemplate;

     //屬性
     [Browsable(false)]
     [TemplateContainer(typeof(Article))]
     [PersistenceMode(PersistenceMode.InnerProperty)]
     public ITemplate ItemTemplate
     {
       get { return _itemTemplate; }
       set { _itemTemplate = value; }
     }

這裡我們認識到了一個TemplateContainer元數據,其與容器控件關聯起來.Article為默認其自身控件,即默認將自身控件作為容器控件.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved