我有一个ASPX页面,其中有两个标签。
每个标签代码都注册为ASCX。我在两个页面都有各自的自定义日历控件。现在,我的日历控件在组合页面上不起作用,但如果页面单独呈现则有效。
主ASPX页面中的代码
<%@ Page Language="VB" %>
<%@ Register Src="~/Content/Page1.ascx" TagPrefix="Content" TagName="Page1" %>
<%@ Register Src="~/Content/Page2.ascx" TagPrefix="Content" TagName="Page2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="PageBody" Runat="Server">
<asp:ScriptManager ID="Main" runat="server" />
<ajaxToolkit:TabContainer ID="tcRecords" ActiveTabIndex="0" runat="server">
<ajaxToolkit:TabPanel ID="tpSuccess" HeaderText="Success Records" runat="server">
<ContentTemplate>
<Content:Page1 ID="P1" runat="server" />
</ContentTemplate>
</ajaxToolkit:TabPanel>
<ajaxToolkit:TabPanel ID="tpFailed" HeaderText="Failed Records" runat="server">
<ContentTemplate>
<Content:Page2 ID = "P2" runat="server" />
</ContentTemplate>
</ajaxToolkit:TabPanel>
</ajaxToolkit:TabContainer>
</asp:Content>
两个ASCX页面中的代码
<%@ Register Src="~/UIControls/Calendar.ascx" TagPrefix="UICtrl" TagName="Calendar" %>
<UICtrl:Calendar ID="Cal1" runat="server" />
答案 0 :(得分:0)
在一个aspx页面中使用同一个用户控件的多个实例之前,我已经看到过这样的行为。您使用任何会话变量或查看状态?您需要确保使用唯一ID分配这些内容,否则,您将在控件之间混合它们。您可以像这样重命名:
ViewState(Me.UniqueID & "_SomeValue")
或
Session(Me.UniqueID & "_someOtherValue")
这会创建一个具有唯一ID
的视图状态和会话变量