您的位置:首页 > 其它

在按钮事件中访问GridView中当前行数据

2006-09-19 10:43 281 查看
.NET2.0提供了一个GridView控件,这个控件为我们带来了许多的方便,但其去掉了datagird中通过事件按钮访问某行数据的便捷方式(e.item.itemindex),这样给访问GridView中获取当前行的数据增加了麻烦。在我做项目开发过程中,我也碰到了类似的问题,我先在网上搜索了下,找到如下相关帖子:
http://blog.csdn.net/jresins/archive/2005/11/20/533533.aspx,此帖给出了一种解决方案,其关键是要设置CommandArgument参数,如果此参数方便设置,应该是种好的解决方案。但是CommandArgument参数很难决定又如何呢?
其实我们可以变通的利用GridView已经提供的事件方法,在实际中,我就是利用了GridView提供的Delete事件方法实现了对数据行的访问。具体的思路是在利用GridView的GridView1_RowDeleting事件,其两个参数object sender和GridViewDeleteEventArgs e,其中后者可以取得当前操作的行。这样,我们可以通过如下代码this.GridView1.Rows[e.RowIndex].Cells[x].Text取得行中的数据。
具体怎样设置呢?其实很简单,就是给GridView控件增加个模板列,编辑此模板列,拖放Button控件进去,指定其CommandName为“Delete”,然后给GridView增加个事件:GridView1_RowDeleting,在此事件里获取相应的行的数据。
注意,我们并不是要对当前行做删除操作,在GridView1_RowDeleting事件的尾部,我们加上如下代码: e.Cancel = true
就是这样处理。经过我的实践,在运行过程中没有出现什么错误!
下面所示是我项目开发中的部分代码:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//获取选择文档的版本,名称,由名称获取其ID,
docedition = this.GridView1.Rows[e.RowIndex].Cells[2].Text.Trim();
docname = this.GridView1.Rows[e.RowIndex].Cells[1].Text.Trim();
……
e.Cancel = true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: