Gridview 正在加载多次

Gridview is loading multiple times

我有一个带有绑定控件的 gridview,它运行良好(即它正在加载 4 行)。此网格视图有 4 行:

Ex: <asp:BoundField HeaderText="Classification" DataField="ClassType" />

但是当我使用 itemtemplate 更改 gridview 时,我的 gridview 加载了 4 次

结构:-

Gridview
- template field
-- Item template

<%# Eval("ClassType")%>

关于后面的代码,我通过以下方式加载:(在 page_load)

 gvResultSet.DataSource = ds.Tables[0];
 gvResultSet.DataBind();

代码

 <asp:GridView ID="gvResultSet" runat="server"  AutoGenerateColumns="false">



<Columns>

<asp:TemplateField>
  <ItemTemplate>
             <table class="tb">
    <thead>
      <tr>
        <th>
          Classification
        </th>
        </tr>
    </thead>
    <tbody>
      <tr class="record">
        <td>
          <%# Eval("ClassType")%>
        </td>
      </tr>
    </tbody>
  </table>
  </ItemTemplate>
</asp:TemplateField>

设置 gridview 的 属性 AutoGenerateColumns="false"。这将解决您的问题。

更新

我的建议是使用 Repeater 控件。

<asp:Repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
            <table class="tb">
                <thead>
                    <tr>
                        <th>
                            Status
                        </th>
                        <th>
                            Name
                        </th>
                        <th>
                            Start Time
                        </th>
                        <th class="date">
                            End Time
                        </th>
                        <th>
                            MAX Date found
                        </th>
                        <th>
                            Classification
                        </th>
                        <th class="last">
                            Read Description
                        </th>
                    </tr>
                </thead>
                <tbody>
        </HeaderTemplate>
        <ItemTemplate>
            <tr class="record">
                <td>
                    <div class="toggle enabled">
                    </div>
                </td>
                <td class="overflow">
                    <%# Eval("Name")%>
                </td>
                <td class="overflow">
                    12/23/2014 6:20:47
                </td>
                <td>
                    12/23/2014 6:27:21
                </td>
                <td class="date">
                    12/23/2014
                </td>
                <td>
                    <%# Eval("ClassType")%>
                </td>
            </tr>
        </ItemTemplate>
        <FooterTemplate>
            </tbody> </table>
        </FooterTemplate>
    </asp:Repeater>

这样会简单很多

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" CssClass="tb">
    <Columns>
        <asp:TemplateField HeaderText="Classification">
            <ItemTemplate><%# Eval("ClassType")%></ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <RowStyle CssClass="record" />
</asp:GridView>

如果你想要 header 在里面,在 DataBind

之后执行此操作
gvResultSet.DataBind();
gvResultSet.HeaderRow.TableSection = TableRowSection.TableHeader;