1

我有一个包含 2 个选项卡的 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" />
4

1 回答 1

0

我以前在一个 aspx 页面中使用同一用户控件的多个实例时看到过这样的行为。您是否使用任何会话变量或视图状态?您需要确保为这些东西分配了唯一的 ID,否则,您将在控件之间混淆它们。您可以像这样重命名它们:

ViewState(Me.UniqueID & "_SomeValue")

或者

Session(Me.UniqueID & "_someOtherValue")

这将创建一个具有唯一 ID 的视图状态和会话变量

于 2013-03-04T19:23:12.673 回答