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

C# 如何获取行数据绑定事件中单元格的值?如何检查单元格是否为空?,c#,asp.net,sql,webforms,rowdatabound,C#,Asp.net,Sql,Webforms,Rowdatabound,我使用的是sqldatasource和一个GridView。 我想从RowDataBound事件?中的GridView中获取单元格的值,因为我不能使用e.RowIndex 如果单元格为空,如何签入更新事件? 我使用了if!=null,但它不起作用,所以我需要检查它是否为空 感谢在RowdataBound事件中,您可以使用以下代码从gridview获取单元格的值: [1]//从特定行获取用户名 string servicename = Convert.ToString(DataBinder.Eva

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

如果单元格为空,如何签入更新事件? 我使用了
if!=null,但它不起作用,所以我需要检查它是否为空


感谢

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

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

string servicename = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));
在RowUpdate事件中,可以使用以下代码检查单元格是否为空:

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()
并抛出一个错误

这就是这个答案的第一行

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


添加一些示例代码,以显示您对代码所做的操作我不在家,也没有代码,但我从gridview单元格的texbox控件中获取了值,然后检查KC(如果有)=无效的首先,我不知道我该怎么做+1来操作和@giri。我不知道如果没有这么多人,我会怎么做。晚点出生似乎很好;)当人们穿过这些墙,找到了很好的答案时:如果你不介意的话,我只是对你的答案做了一些视觉冲击。