1

asp:gridview をハードコーディングし、DB から 1 つの列を取得してグリッド ビューに表示しようとしています。しかし、表示すると、2 つの列が表示されます。最初の 1 つは単なるダミーで、もう 1 つは表示したい実際のデータで構成されています。

私が書いたコードはここにあります:

<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

まず、ベスト プラクティスに注目して、レイアウト アイテムをコードから分離することをお勧めします。Gridview はテーブルを生成し、このテーブルを CSS でレイアウトします。( border-widthASP コントロールの幅単位を持つすべての属性として、「px」を使用する必要はありません)

次に、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 に答える
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 に答える