获取GridView中绑定行的不可见列的值

时间:2010-08-11 20:33:27

标签: asp.net

我在Web窗体中有一个ASP.NET GridView控件。为简单起见,我会说这个GridView定义如下:

<asp:GridView ID="myGridView" runat="server" AutoGenerateColumns="false"  
  AllowPaging="true" AllowSorting="true" PageSize="50" 
  OnRowDataBound="myGridView_RowBound" DataKeyNames="ID"
  OnLoad="myGridView_Load" OnPageIndexChanging="myGridView_PageIndexChanging"   
  OnSorting="myGridView_Sorting">

  <Columns>
    <asp:BoundField DataField="ID" Visible="false" />
    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />                            
    <asp:BoundField DataField="Age" HeaderText="Age" SortExpression="Age" />
  </Columns>
</asp:GridView>

当绑定这些行中的每一行时(在“myGridView_RowBound”事件期间为a.k.a.),我想获取ID,Name和Age值。我的问题是,我无法弄清楚如何获得“ID”值。原因是因为它处于一个看不见的领域。有人能告诉我如何获得价值

2 个答案:

答案 0 :(得分:3)

您可以在数据绑定(onrowcreated)后隐藏单元格,也可以处理绑定以隐藏列。

查看this article了解详情。

答案 1 :(得分:1)

在行数据绑定事件上,您可以通过绑定数据项访问ID。无需与列进行交互。

例如,您可能拥有行数据绑定事件。

void myGridView_RowBound(Object sender, GridViewRowEventArgs e)
{

    if(e.Row.RowType == DataControlRowType.DataRow)
    {

        var item = e.Row.DataItem as T;
        // where T is your item type

        if (item != null) {
           var id = item.ID;
        }

     }

}