11

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

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

谢谢

4

1 回答 1

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。如果您不想使用数据键,则检查特定单元格是否为空的代码是

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

 if(txtaname.text != null)

编辑:

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

这就是这个答案的第一行出现的地方。[ 1 ]

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

在此处输入图像描述

于 2012-04-24T14:30:32.870 回答