【发布时间】:2013-07-08 20:43:05
【问题描述】:
我有一个动态创建多个用户控件的 .aspx 页面,每个用户控件都有自己的代码,这些代码基于用户控件级别的多个事件触发。问题是,在特定用户控件中的事件触发之前,父页面Load 方法也会触发。因为每个控件都是动态添加的,所以这不是一个微不足道的处理量,因为必须重新添加每个控件。
我希望能够在不强制更新承载它的页面上的情况下触发 UserControl 事件。我尝试将整个用户控件放在 UpdatePanel 中,但用户控件中的回发仍然会强制为父级加载页面。
这里有一些测试代码省略了某些部分,并且以声明方式而不是编程方式添加了控件。
.ASPX 父页面
<%@ Page Language="vb" CodeBehind="MyParent.aspx.vb" %>
<%@ Register TagPrefix="uc" TagName="Control" Src="MyControl.ascx" %>
<form id="form1" runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<uc:Control ID="Control1" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
.ASCX 用户控制
<%@ Control Language="vb" CodeBehind="MyControl.ascx.vb" %>
<p>Control Added</p>
<asp:Button runat="server" Text="ForcePostBack"/>
【问题讨论】: