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 回答