我希望你能帮上忙,因为我已经把头撞在墙上了。长话短说,我想用包含自己的更新文件的UserControls动态加载LoadControl,当它们出现在页面上时,可以通过自己的子程序单独触发更新。
为了更好地解释,请参阅我的问题的非常简化的示例:
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 IfWebUserControl.ascx
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<%= Now.ToLongTimeString%>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
如果运行此操作,我希望加载每个控件,将其添加到占位符中,然后单击该控件中的按钮,只有该控件触发更新。
相反,它似乎不起作用。
如果我使用通常的标记将控件添加到页面中,它们就可以正常工作,因此问题就在loadControl/place夹子问题中。
,救命!
发布于 2010-07-12 10:04:48
由于这些是动态控件,所以必须在回发时将它们添加到页面中,因此需要删除'IF Me.IsPostBack = False‘'end if’。否则,这些控件将在回发后从页面中消失。
https://stackoverflow.com/questions/3174956
复制相似问题