关于e.Item.Cells的问题,VS2008的GridView VS. VS2003的DataGrid

作为DataGrid的更改,VS2008中的GridView确实进行了相当多的修改,可是有些方法是在改的太不一样了,让人用起来无从下手。我觉得

GridViewCommandEventArgs的参数e就是一个相当典型的例子。

 

我查了网上很多地方,都找不到解决的办法,下面有几个给我提供很大帮助的网页:

关于在动态绑定gridview里,怎样取某列的列标题值!! http://tech.techweb.com.cn/archiver/tid-207011.html

GridView控件常见问题及处理方法 http://www.tzwhx.com/newOperate/html/1/11/111/6469.html

 

这里引用一下上面第二篇文章的话,大家就可以看出这个参数e的在DataGrid和GridView中到底有哪些不同之处了:

“在DataGrid中,要响应控钮列中的按钮点击事件,可以处理ItemCommand事件:事件的第一个参数source是object类型的,值为DataGrid,二个参数e是DataGridCommandEventArgs类型的,e中包含四个属性Item的值为按钮所在的行, CommandSource的值为所点击的按钮,CommandName的值为按钮在设计期定义的值,CommandArgument的值固定为空字符串。在使用中,可以根据Item来区分点击的是哪个行中的按钮,可以根据CommandName来区分一个行中的多个按钮。 ”

 

“在GridView中,要响应控钮列中的按钮点击事件,可以处理RowCommand事件:事件的第一个参数sender是object类型的,值为GridView,第二个参数e是GridViewCommandEventArgs类型的,e中仅包含三个属性,比DataGrid控件中的相应事件少了关键的Item属性CommandSource的值也与DataGrid中的不一样,在这里为GridView,CommandName的值为按钮在设计期定义的值,CommandArgument的值为被点击的按钮所在行的索引。在使用中,可以根据CommandArgument来区分点击的是哪个行中的按钮,可以根据CommandName来区分一个行中的多个按钮。”

 

所以当我想在GridView取某行第二列的行值时,眼见着用不成e.Item.Cells[2].Text,心里那叫一个急啊!

不过仔细想了想,既然在DataGrid中,Item的值为按钮所在的行,那么我只需要将这个Item换成我所需要的行不就完了,问题顿时清晰了~

 

如果说在DataGrid中,我可以这样实现如下功能的话:

txtFirstNameEdit.Text = e.Item.Cells[2].Text;

 

那么在GridView中相应的实现方法就是这个:

int intEmployeeID = Convert.ToInt32(e.CommandArgument);

txtFirstNameEdit.Text = this.EmployeeGrid.Rows[intEmployeeID].Cells[2].Text;

 

请大家注意上面的黑体字,DataGrid中我们直接使用了参数e,而在GridView中不能这样使用。

我先得到所需的行号之后,再用这个行号找到所在的行,之后再找到这一行的某一列。

 

取到这个列值一定还有更多的方法,我这只是其中的一种,希望对大家有帮助。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值