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

1 つの aspx ページで同じユーザー コントロールの複数のインスタンスを使用するときに、このような動作を以前に見たことがあります。セッション変数またはビューステートを使用していますか? これらのものに一意の ID を割り当てていることを確認する必要があります。そうしないと、コントロール間でそれらを混同してしまいます。次のように名前を変更できます。

ViewState(Me.UniqueID & "_SomeValue")

また

Session(Me.UniqueID & "_someOtherValue")

これにより、一意の ID を持つビュー ステートとセッション変数が作成されます

于 2013-03-04T19:23:12.673 に答える