【问题标题】:Getting name of table columns in gridview in addition to custom names除了自定义名称之外,还获取 gridview 中表列的名称
【发布时间】:2015-05-30 11:19:53
【问题描述】:

我的 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>

看起来像一个愚蠢的问题,但我们将不胜感激。

【问题讨论】:

    标签: c# asp.net .net gridview


    【解决方案1】:

    这是因为您在此设计代码中明确指定了 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,其标题名称与列名称相同。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        相关资源
        最近更新 更多