1

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

我写的代码在这里:

<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>
4

2 回答 2

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

于 2013-09-30T11:51:02.993 回答
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>
于 2013-09-30T12:03:50.237 回答