0

ユーザー コントロール内で asp:UpdatePanel を使用しています。このユーザー コントロールは、'.aspx' ページ内に含まれています。次のように登録して使用します。

<%@ Register Src="~/Forms/TestPage.ascx" TagPrefix="ig" TagName="UserControl1" %>

    <asp:Panel ID="ucTestUserCntrl" Visible="false" runat="server">
       <ig:UserControl1 ID="UserControl1" runat="server" />
    </asp:Panel>

<!-- user control code in a diferent page '.ascx' file
-->
<%@ Control Language="C#" Debug="true" CodeFile="TestUserCntrl.ascx.cs"    Inherits="Test_WebUserControl"
AutoEventWireup="true" ClassName="TestUserControl" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="MainContent">
    <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Timer ID="timer1" runat="server" Interval="1000" OnTick="Time_Tick">
            </asp:Timer>
            <asp:Label ID="lblTimeDisplay" Text="00:00:00" runat="server" />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="timer" EventName="Tick" />
        </Triggers>
    </asp:UpdatePanel>
</asp:Content>

ユーザー コントロールは次のようになります。

これにより、「コンテンツ コントロールは、マスター ページを参照するコンテンツ ページまたはネストされたマスター ページのトップレベル コントロールである必要があります」というエラーが表示されます。

このエラーを修正する方法に関する提案。

4

1 に答える 1

0

そのユーザーコントロールを配置する必要があり <ContentTemplate></ContentTemplate>ます。外部に配置すると、エラーが発生します。

<%@ Register Src="~/Forms/TestPage.ascx" TagPrefix="ig" TagName="UserControl1" %>



<!-- user control code in a diferent page '.ascx' file
-->
<%@ Control Language="C#" Debug="true" CodeFile="TestUserCntrl.ascx.cs"    Inherits="Test_WebUserControl"
AutoEventWireup="true" ClassName="TestUserControl" %>

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="MainContent">
    <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
<asp:Panel ID="ucTestUserCntrl" Visible="false" runat="server">
       <ig:UserControl1 ID="UserControl1" runat="server" />
    </asp:Panel>
            <asp:Timer ID="timer1" runat="server" Interval="1000" OnTick="Time_Tick">
            </asp:Timer>
            <asp:Label ID="lblTimeDisplay" Text="00:00:00" runat="server" />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="timer" EventName="Tick" />
        </Triggers>
    </asp:UpdatePanel>
</asp:Content>
于 2013-08-19T07:48:09.777 に答える