如何在行数据绑定事件中获取单元格的值?以及如何检查单元格是否为空?

时间:2012-04-24 09:42:26

标签: c# asp.net sql webforms rowdatabound

我正在使用sqldatasource和 GridView 。 我想从RowDataBound事件中的GridView获取单元格的值?因为我无法使用e.RowIndex

如果单元格为空,如何检查updatng事件? 我使用if != null,但它没有用,所以我需要检查它是否为空。

感谢

1 个答案:

答案 0 :(得分:16)

在RowdataBound事件中,您可以使用以下代码从gridview获取单元格的值:

[ 1 ] //获取用户名rfom特定行

string servicename = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));

在RowUpdating事件中,您可以使用以下代码检查单元格是否为空:

string servicename = grdvw_showdetails.DataKeys[row.RowIndex][1].ToString();

上面的代码在行更新事件中使用Datakey。如果您不想使用datakey,则检查特定单元格的代码是否为空

 TextBox txtaname = (TextBox)row.FindControl("txt_updname");

 if(txtaname.text != null)

修改

这个答案很棒。不过我想补充一点评论。检查RowDatabound事件中的行单元格数据时,无法直接访问行的DataItem的ItemArray属性。所以当我们做这样的事情时,它是毫无意义的:string val = e.Row.Cells[2].Text.ToString();并抛出一个错误。

这就是这个答案的第一行所在。[ 1 ]

在调试模式下执行监视时,以下屏幕显示Row的基础属性的树/层次结构。

enter image description here