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