除了自定义名称外,还可以在gridview中获取表列的名称

时间:2015-05-30 11:19:53

标签: c# asp.net .net gridview

我的ASPX页面上有一个简单的网格,我将它与来自按钮点击事件的选择查询的数据绑定。我不知道如何将此表的列与我的网格绑定,因为目前我得到的是8列,其中4列是aspx页面中给出的标题,4是表格列的标题。下面是我的按钮点击事件代码。

protected void btnSearch_Click(object sender, EventArgs e)
        {
            MyBookListCont myBookListCont = new MyBookListCont();
            gdvMyBooks.DataSource = myBookListCont.SearchBookDetailsCont();
            gdvMyBooks.DataBind();            
        }

以下是gridview的aspx代码。

<asp:GridView ID="gdvMyBooks" runat="server">
    <Columns>            
        <asp:BoundField DataField="BK_NM" HeaderText="Book Name" />
        <asp:BoundField DataField="ATHR_NM" HeaderText="Author Name" />
        <asp:BoundField DataField="BUY_YR" HeaderText="Buy Year" />
        <asp:BoundField DataField="PRICE" HeaderText="Price" />
    </Columns>
</asp:GridView>

看起来像一个愚蠢的问题,但非常感谢帮助。

2 个答案:

答案 0 :(得分:0)

您必须将GridView.AutoGenerateColumns设置为false:

<asp:GridView ID="gdvMyBooks" runat="server" AutoGenerateColumns="False">

否则,它将绑定对象的所有字段。

答案 1 :(得分:0)

这是因为您在此设计代码中明确指定了4列:

<Columns>            
        <asp:BoundField DataField="BK_NM" HeaderText="Book Name" />
        <asp:BoundField DataField="ATHR_NM" HeaderText="Author Name" />
        <asp:BoundField DataField="BUY_YR" HeaderText="Buy Year" />
        <asp:BoundField DataField="PRICE" HeaderText="Price" />
    </Columns>

现在,正如您所看到的,有一个HeaderText属性将覆盖表列名称并显示此处提到的文本。

您可以尝试以下几种选择:

首先,如果您希望所有列都使用自定义标题文本,则可以使用相同的方式定义所有其他列。这将按照给定的格式显示所有数据和列标题。如下所示:

 <asp:GridView ID="gdvMyBooks" AutoGenerateColumns="False" runat="server">
    <Columns>            
        <asp:BoundField DataField="BK_NM" HeaderText="Book Name" />
        <asp:BoundField DataField="ATHR_NM" HeaderText="Author Name" />
        <asp:BoundField DataField="BUY_YR" HeaderText="Buy Year" />
        <asp:BoundField DataField="PRICE" HeaderText="Price" />
        //other columns using same syntax as above.
    </Columns>
</asp:GridView>

此外,如果您不想绑定查询中的所有列,可以在gridview中使用此属性,

AutoGenerateColumns = False

只需指定您当前所需的列。

另一件事是,如果您想立即将查询中的结果绑定到GridView,那么只需删除这4个BoundField语句并保持原样。这会将您的表绑定到GridView,并使用与列名相同的标题名称。

我希望这能使事情变得清晰。