Ale*_*der 11 c# sql asp.net webforms rowdatabound
我正在使用sqldatasource和GridView.我想在RowDataBound事件中从GridView获取单元格的值?因为我无法使用e.RowIndex.
如果单元格为空,如何检查updatng事件?我用过if != null,但它没有用,所以我需要检查它是否为空.
谢谢
小智 16
在RowdataBound事件中,您可以使用以下代码从gridview获取单元格的值:
[ 1 ] //获取用户名rfom特定行
string servicename = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));
Run Code Online (Sandbox Code Playgroud)
在RowUpdating事件中,您可以使用以下代码检查单元格是否为空:
string servicename = grdvw_showdetails.DataKeys[row.RowIndex][1].ToString();
Run Code Online (Sandbox Code Playgroud)
上面的代码在行更新事件中使用Datakey.如果您不想使用datakey,则检查特定单元格的代码是否为空
TextBox txtaname = (TextBox)row.FindControl("txt_updname");
if(txtaname.text != null)
Run Code Online (Sandbox Code Playgroud)
编辑:
这个答案非常好.不过我想补充一点评论.在RowDatabound事件中检查行单元格数据时,DataItem不能直接访问该行的ItemArray属性.因此,当我们做这样的事情时,它是毫无意义的:string val = e.Row.Cells[2].Text.ToString();并抛出一个错误.
这就是这个答案的第一行所在.[ 1 ]
在调试模式下执行监视时,以下屏幕显示Row的基础属性的树/层次结构.
