2010-07-04 37 views
0

我希望你能幫忙,因爲我一直在撞牆撞了我的頭。長話短說,我想動態加載包含自己的更新面板的LoadControl的UserControls,當他們在頁面上時,能夠通過他們的孩子單獨觸發他們的更新。通過LoadControl()加載的UserControl中的UpdatePanel不起作用?

更好地說明,我看到我的問題非常簡單的例子:

Default.aspx的

<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<div> 
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> 
</div> 
</form> 

Default.aspx.vb

IF Me.IsPostBack = False 
Dim control As Control = LoadControl("WebUserControl.ascx") 
PlaceHolder1.Controls.Add(control) 
Dim control2 As Control = LoadControl("WebUserControl.ascx") 
PlaceHolder1.Controls.Add(control2) 
Dim control3 As Control = LoadControl("WebUserControl.ascx") 
PlaceHolder1.Controls.Add(control3) 
End If 

WebUserControl。 ascx

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
<ContentTemplate> 
    <%= Now.ToLongTimeString%> 
    <asp:Button ID="Button1" runat="server" Text="Button" /> 
</ContentTemplate> 

如果你跑了這一點,我想被載入每個控件添加到佔位符,然後當你單擊該控制按鈕,只有控制觸發更新。

相反,它似乎沒有工作。

如果我通過使用通常的標記將控件添加到頁面,它們工作正常,所以問題是在loadControl /佔位符問題的某處。

請幫助!

回答

0

由於這些是動態控制,您必須將它們添加到回發頁面,因此您需要刪除'IF Me.IsPostBack = False''if if'。否則控件將在回發後從頁面中消失。

這是否解決了您的問題或者究竟是什麼工作?

相關問題