【问题标题】:How to solve : "the element div cannot be nested within the element 'updatepanel' "如何解决:“元素 div 不能嵌套在元素 'updatepanel' 中”
【发布时间】:2019-08-10 20:10:15
【问题描述】:

我想在更新面板中使用更新面板和 div,但出现错误: 元素 div 不能嵌套在元素“updatepanel”中。 这是我的代码:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

    <div style="overflow:scroll">
    <asp:GridView ID="GridViewHome" runat="server" Width="100%"  AutoGenerateColumns="false" BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" OnPageIndexChanging="GridViewHome_PageIndexChanging" PageSize="30" ShowFooter="True">

               <Columns>

                   <asp:TemplateField>
                    <HeaderTemplate>Options</HeaderTemplate>
                    <ItemTemplate>
                        <div style="width:100%"> <asp:HyperLink ID="HyperLink1"  NavigateUrl='<%#"/RPT/WebForm1.aspx?order_id=" +Eval("Request number")+"&DEPT ID=" +Eval("DEPT ID")+"&Test Id=" +Eval("Test Id")+"&Culture=" +Eval("Culture")%>' runat="server">Print Result</asp:HyperLink></div>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField>
                    <HeaderTemplate>Patient MRN#</HeaderTemplate>
                    <ItemTemplate>
                      <div style="width:100%">  <asp:Label ID="lblpatient" runat="server" Text='<%# Eval("Patient No") %>'></asp:Label></div>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <HeaderTemplate>Patient Name</HeaderTemplate>
                    <ItemTemplate>
                       <div style="width:100%"> <asp:Label ID="lblname" runat="server" Text='<%# Eval("Patient Name") %>'></asp:Label></div> 
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <HeaderTemplate>Order Number</HeaderTemplate>
                    <ItemTemplate>
                       <div style="width:100%"> <asp:Label ID="lblorder" runat="server" Text='<%# Eval("Request number") %>'></asp:Label></div>
                    </ItemTemplate>
                </asp:TemplateField>


            </Columns>


        </asp:GridView>
        </div>

        </asp:UpdatePanel>

如何解决这个错误?

【问题讨论】:

    标签: c# asp.net html webforms


    【解决方案1】:

    一个更新面板可以包含一个 ContentTemplate ,所以像这样添加 ContentTemplate :

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <div style="overflow:scroll">
        <asp:GridView ID="GridViewHome" runat="server" Width="100%"  AutoGenerateColumns="false" BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" OnPageIndexChanging="GridViewHome_PageIndexChanging" PageSize="30" ShowFooter="True">
    
                   <Columns>
    
                       <asp:TemplateField>
                        <HeaderTemplate>Options</HeaderTemplate>
                        <ItemTemplate>
                            <div style="width:100%"> <asp:HyperLink ID="HyperLink1"  NavigateUrl='<%#"/RPT/WebForm1.aspx?order_id=" +Eval("Request number")+"&DEPT ID=" +Eval("DEPT ID")+"&Test Id=" +Eval("Test Id")+"&Culture=" +Eval("Culture")%>' runat="server">Print Result</asp:HyperLink></div>
                        </ItemTemplate>
                    </asp:TemplateField>
    
                    <asp:TemplateField>
                        <HeaderTemplate>Patient MRN#</HeaderTemplate>
                        <ItemTemplate>
                          <div style="width:100%">  <asp:Label ID="lblpatient" runat="server" Text='<%# Eval("Patient No") %>'></asp:Label></div>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>Patient Name</HeaderTemplate>
                        <ItemTemplate>
                           <div style="width:100%"> <asp:Label ID="lblname" runat="server" Text='<%# Eval("Patient Name") %>'></asp:Label></div> 
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>Order Number</HeaderTemplate>
                        <ItemTemplate>
                           <div style="width:100%"> <asp:Label ID="lblorder" runat="server" Text='<%# Eval("Request number") %>'></asp:Label></div>
                        </ItemTemplate>
                    </asp:TemplateField>
    
    
                </Columns>
    
    
            </asp:GridView>
            </div>
            </ContentTemplate>
            </asp:UpdatePanel>
    

    【讨论】:

      【解决方案2】:

      在 ContentTemplate 标签内插入 div,如下所示:

      <asp:UpdatePanel ID="UpdatePanel1" runat="server">
          <ContentTemplate>
              <div style="overflow:scroll">
                  //stuff
      
              </div>
          </ContentTemplate>
      </asp:UpdatePanel>
      

      【讨论】:

        【解决方案3】:

        您可以在 &lt;asp:UpdatePanel&gt; 中添加 &lt;ContentTemplate&gt; 部分来保存 div 元素,因为 UpdatePanel 只能有 ContentTemplate 部分:

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div style="overflow:scroll">
                <asp:GridView ID="GridViewHome" runat="server" Width="100%"  AutoGenerateColumns="false" BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" OnPageIndexChanging="GridViewHome_PageIndexChanging" PageSize="30" ShowFooter="True">
                    <%-- gridview contents --%>
                </asp:GridView>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
        

        参考:

        validation (xhtml5): the element 'div' cannot be nested within the element 'updatepanel'

        【讨论】:

          猜你喜欢
          • 2014-05-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-16
          • 1970-01-01
          • 1970-01-01
          • 2013-05-06
          相关资源
          最近更新 更多