2010-07-21 170 views

回答

1

你想使用TemplateControl.LoadControl(這是頁面,用戶控制和母版頁繼承)。您需要在Init事件期間執行此操作,以便回發內容工作。

void Page_Init(Object Sender, EventArgs e) { 
    var control = LoadControl("Awesome.ascx"); 
    // ... Magic! 
} 
0

將父用戶控件的佔位符控制:

<asp:PlaceHolder runat="server" id="phMainHolder" /> 

在Page_Load或Page_Init事件只需要簡單的子用戶控件中的(各)循環,並將它們添加到像例如佔位符:

for(int i = 0; i < 10; i++) { 
    ChildUC child = new ChildIC(); 
    phMainHolder.Controls.Add(child); 
} 

這是最低限度做到這一點。你當然可以選擇設置屬性或任何你的子控件。

ChildUC類是本示例的虛構類名。使用,如果需要,請使用您要使用的用戶控件的名稱空間作爲定義的額外名稱。

+0

@Xlll:這裏的問題是我不能通過我的父控件獲取ChildIc()。我錯過了什麼嗎? – 2010-07-21 08:22:38

+0

這裏要確定的一件事是,您需要在每個頁面上生成控件,其他明智的(意味着當您動態生成控件時不要放置條件!Page.IsPostBack)。 – shailesh 2010-07-21 15:15:16