自定義控件中動態加載用戶控件 自己寫個自定義控件,如
<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里設置好內容就可以使用。當然也可以緩存起來