除自定义名称外,还获取gridview中表列的名称
本文关键字:gridview 自定义 获取 | 更新日期: 2023-09-27 17:51:09
我在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>
看起来像一个愚蠢的问题,但帮助将非常感激。
这是因为您在此设计代码中明确指定了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
属性,它将覆盖表列名并显示这里提到的文本。
这里有几个选项,你可以试试:
首先,如果您希望所有列都像这样带有自定义标题文本,那么您也可以用相同的方式用这4定义所有其他列。这将按照给定的格式显示所有数据和列标头。像这样:
<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
。
您必须将GridView.AutoGenerateColumns
设置为false:
<asp:GridView ID="gdvMyBooks" runat="server" AutoGenerateColumns="False">
否则,它将绑定对象的所有字段。