关于GridView的思考

来源:互联网 发布:图片修改软件 编辑:程序博客网 时间:2024/05/16 11:07
GridView封装程度这么高,确实让不少开发都变得挺简单的,但是它给前台大量的ViewState数据,会增加网络IO量,
所以说GridView或者说.net的控件是有利也有弊,不过在内网或者外网后台中使用GridView还是非常适合的。
最近用多了这个控件,在使用的时候发现一些问题,查下资料解决了,那么做个笔记:


1、GridView中有个DataKeyNames,这个集合存放GridView的数据指定的key列,一般我们是绑定数据库查询结果,所以这部分可能是数据库的主键,
或者是我们需要的一些数据(因为后面要用到的数据),在GridView的数据源绑定之后,我们可以从DataKeys中获取对应DataKeyNames列集合的数据集合,
DataKeys里面存放了各行的指定主键值的集合。
在RowDataBound事件绑定的方法中,我们可以通过GridView.DataKeys[e.RowIndex].Values[index]这样我们就可以获取到DataKeys中的数据了,其中比较重要的是id
我们可以通过获取这个id值,对数据进行增删改查...


2、在GridView中的dropDownList控件
在GridView添加DropDownList,可以很好的控制数据列的顺序,用户可以非常简单的修改数据的顺序,而不是自己填写,对吧(用户体验的重要性,增加编程的难度)
在dropDownList的dll_selectIndexChange事件绑定函数中,我们可以通过sender as DropDownList获取触发该事件dropdownList的控件,
然后这里我们就要知道是哪一行的数据所触发的,这里可以使用(sender as DropDownList).NamingContainer这个方法来获取指定GridView行,返回的数据为
GridViewRow:GridViewRow gvr=(sender as DropDownList).NamingContainer
string id=GridView.DataKeys[gvr.RowIndex].values[index]获取主键
换成其他控件,我们也可以这么处理,其事件绑定方法中获取行后获取主键...


3、在GridView行中查找控件:
经常都要在一个行中查找我们需要的控件,
那么 GridView1_RowDataBound(object sender, GridViewRowEventArgs e)中,我们可以通过e.Row.FindControl("controlName")
然后对其装箱就行了,这样就可以获取控件数据以及操作...
原创粉丝点击