2010-07-21 103 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