在动态生成的GridView中,在SelectedIndexChanged事件期间访问SelectedRow的属性

时间:2010-09-30 19:29:17

标签: c# asp.net

我在页面上有一个空的GridView对象,我在运行时绑定到LINQ qry结果。 GridView有一个“选择”按钮,用于触发SelectedIndexChanged事件,它在此事件内部,我想访问所选行中某个字段的数据。

到目前为止,我只能找到一种方法来做到这一点,而且似乎不是最理想的:

protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
{
  GridViewRow row = GridView2.SelectedRow;
  string UserID = row.Cells[1].Text;
  //Do stuff with the userID
}

因此,这只是根据单元格索引直接访问单元格数据。 UserID恰好位于第二个单元格中,因此可以正常工作。但是在以后的路上,UserID可能不在同一列中。看起来我最好通过单元格的标题名称或单元索引本身以外的任何方法来查找此单元格的值。

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

试试这个


User user = (User)((DataRowView)row.DataBoundItem).Row;
int userID = user.UserID;

我假设您有一个名为User的类,并且您将DataGridView绑定到List

答案 1 :(得分:0)

我对asp.net了解不多,但在C#DataGridView中你可以直接按列名索引列,即

string UserID = row.Cells["UserID"].Text;

或类似的东西。可能值得一试。

答案 2 :(得分:0)

您可以使用以下代码检索绑定到当前 SelectedRow 的对象。

DataTable dt = (DataTable)<GridViewControl>.SelectedRow.DataItem

(这里我假设Grid与DataTable绑定。)