我有一个动态创建多个用户控件的 .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"/>