在updatepanel中动态加载usercontrol

时间:2011-02-16 11:50:37

标签: c# asp.net user-controls updatepanel

所以我试图将一个usercontrol动态加载到updatepanel中另一个usercontrol的占位符中。

基本上我有这个标记:

<asp:UpdatePanel ID="upPopup" runat="server">
    <ContentTemplate>
        <UC:Popup runat="server" ID="UC_Popup" />
    </ContentTemplate>
</asp:UpdatePanel>

然后在usercontrol(Popup)中的这个标记:

<div id="modal">
    <asp:PlaceHolder ID="phPopupPlaceholder" runat="server"></asp:PlaceHolder>
    <asp:Label ID="lblModal" runat="server"></asp:Label>
</div>

在popup usercontrol的代码隐藏中,我有:

public void Show(UserControl control) {
    this.phPopupPlaceholder.Controls.Add(control);
    this.lblModal.Text = "Loaded";
}

我将这种show方法称为:

Popup.show(new MyUserControl());

尽管没有任何内容加载到占位符中。

但是在show方法中我可以加载常规服务器控件,如下所示:

this.phPopupPlaceholder.Controls.Add(new Label(){ Text = "Label!" });

有人可以向我解释为什么常规控件加载正常,但我的usercontrol没有加载?

1 个答案:

答案 0 :(得分:1)

好的,我了解到我显然必须使用LoadControl方法,但我不太明白为什么这是必要的:/