频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

自定义控件(可以动态加载用户控件)

来源: 作者: 出处:巧巧读书 2006-06-04 进入讨论组

自定义控件中动态加载用户控件

 自己写个自定义控件,如
<MyControls:Containers id="myc" runat="server">
    <ITEMPLATE>
    <MyControls:MidArea runat="server">
    </MyControls:MidArea>
    </ITEMPLATE>
</MyControls:Containers>
要想每次使用Containers时就自动有页眉和页脚,一种方法就是在在做Containers的时候自己在里面加html元素。但是这中方法麻烦,也不容

易便于以后的修改。所以就把页眉和页脚分别做成两个用户控件:Header.ascx,Footer.ascx。这样再在Containers里动态加载他们。
Containers的代码:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;


namespace WebComponents
{
 /// <summary>
 /// Containers自定义控件
 /// </summary>
 
 [ParseChildren(true)]//可以创建子控件
 public class Containers : Control,INamingContainer
 {
  public Containers()
  {
 
  }

  private ITemplate itemTemPlate;
  [TemplateContainer(typeof(Containers))]
  public  ITemplate ItemPlate//项模板
  {
   get{return itemTemPlate;}
   set{itemTemPlate=value;}
  }

  protected override void CreateChildControls()
  {  
   this.Controls.Clear();
                        Control Header=Page.LoadControl("Header.ascx");//动态加载Header.ascx,也可判断何时加载
          Controls.Add(Header);
   Control Footer=Page.LoadControl("Footer.ascx");
          Controls.Add(Footer);
  }

  
 }
 
}

这样你在Header.ascx,Footer.ascx里设置好内容就可以使用。当然也可以缓存起来

专题:http://www.qqread.com/cpp/h269116002.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章