我在asp gridview中得到额外的行,如何解决这个问题?

时间:2013-09-30 11:21:50

标签: asp.net gridview

我正在尝试对asp:gridview进行硬编码并从数据库中检索一列并将其显示在网格视图上。 但是当我显示时,它给了我2列,其中第一列只是虚拟,另一列是我要显示的实际数据。

我写的代码在这里:

<asp:gridview ID="gvEmpnames" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" 
            BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2">
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate><asp:Label runat="server" ID="lblHeaderText" Text="EmpID" /></HeaderTemplate>
            <ItemTemplate><asp:Label runat="server" ID="lblHeaderText" Text='<% eval("eid") %>' /></ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:gridview>

2 个答案:

答案 0 :(得分:0)

您必须将AutoGenerateColumns设置为false(默认为true)。

<asp:gridview ID="gvEmpnames" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" 
            BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate><asp:Label runat="server" ID="lblHeaderText" Text="EmpID" /></HeaderTemplate>
            <ItemTemplate><asp:Label runat="server" ID="lblHeaderText" Text='<% eval("eid") %>' /></ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:gridview>

system.web.ui.webcontrols.gridview.autogeneratecolumns

答案 1 :(得分:0)

首先,关注最佳实践,我建议您将布局项与代码分开。 Gridview生成一个表,用CSS布局该表。 (在border-width中,您不需要使用“px”,因为ASP控件中包含宽度单位的所有属性)

其次,您的gridview核心代码可以得到改进,为您提供更多的可读性和对代码的理解(可维护性)。

最后,在Gridviews中显示不需要的额外行的常见错误是忘记隐藏自动生成的列。

<asp:gridview ID="gvEmpnames" runat="server" CssClass="grid"
    AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="eid" HeaderText="EmpID" />
    </Columns>
</asp:gridview>