ASP.NET控件开发基础(16)

http://tech.ddvip.com   2007年09月02日    社区交流

内容摘要:ASP.NET控件开发基础

  定义模板属性方法如下

    //声明变量
    private ITemplate _itemTemplate;
  
    //属性
    [Browsable(false)]
    [TemplateContainer(typeof(Article))]
    [PersistenceMode(PersistenceMode.InnerProperty)]
    public ITemplate ItemTemplate
    {
      get { return _itemTemplate; }
      set { _itemTemplate = value; }
    }

  这里我们认识到了一个TemplateContainer元数据,其与容器控件关联起来.Article为默认其自身控件,即默认将自身控件作为容器控件.

  (3).重写CreateChildControls方法

  此方法我们以前已认识过了,主要是为控件添加子控件

    protected override void CreateChildControls()
    {
      _itemTemplate.InstantiateIn(this);
    }

  这次我们要做的重点是认识ITemplate接口的InstantiateIn 方法,方法有一个Control参数,其为子控件和模板定义了一个容器控件(此处为其自身控件,下面看页面代码).如GridView和DataList控件都实现了自定义的容器控件.Repeater则是完全自定义的.这里暂且默认实现

  实现代码

  在模板内拖了一个label控件

  <custom:Article
    id="Article1"
    Runat="server">
    <ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </ItemTemplate>
  </custom:Article>
 

责编:豆豆技术应用

正在加载评论...