GridView的数据获取

在vs2010中 常常会用到GridView控件来显示用户需要显示的信息。在这里或许会有很多初学者会问,在web中如何像winform中一样得到GridView控件行的数据,在这里我给大家总结一下我所知道的点。

1.在设计视图中设置DataKeyName的键的名字(一般设置的键名为主键,也可以设置多个键),然后在cs文件中获取对应的DateKey对应下标的value值(默认获取的是DataKeyName中的第一个键值),就可以获取到你所设置的DateKeyName的值。

2.设置CommandArgument或CommandName的值来获取想要获取的键的值 ,CommandArgument=<%#Eval("ID") %>是用来获取GridView中用户所点击行对应的键名为ID的值,也可以直接让CommandArgument=" 数据"; 直接赋值 ,同理CommandName也是一样的,大家可以自己多练习一下,熟能生巧。

(补充: 在这里CommandName还有一个特殊的用法,大家都知道在我们的TemplateField模板中可以给其添加各种各样的控件,它的所有事件都会激发GridView中的RowCommand事件,但是在这个时候我们会说如果这个TemplateField模板中添加了多个控件呢?怎么区分到底用户点击的是哪个控件的发生事件呢?这个时候我们就需要给其每一个TemplateField模板中的控件都添加一个CommandName属性,给其赋予一个类似与ID一样的键名,在RowCommand事件中我们用多个 If 语句来判断用户点击的是哪个控件,然后执行其对应的内容)

if(GridView.CommandName="ID")

(PS 以上两种方法适用于获取单一的数据,实现删除等操作, 多适用于模板TemplateField)

3. 在CommandField中 编辑所在行,这时需要在GridView设置RowEditing的事件,得到当前GridView的EditIndex编辑行的索引,然后让Gridview的数据再绑定一次

GridView .EditIndex=e.NewEditIndex;

RowEditing方法设置完成后,此时我们就可以点开编辑,但是当我们点击取消编辑的时候,此时我们又需要设置GridView的RowCancelingEdit事件,让它的EditIndex=-1;

GridView.EditIndex=-1;

此时就剩下更新的事件设置完成就可以正常使用编辑了,接下来我们就设置GridView中的RowUpdating事件,在vs2010中我们可以通过获取GridView中用户设置的对应的键名来获取修改后的数据

String name=e.NewValues["键名"] .ToString();

在此所有应该写的东西都写了,如果说有什么不足,请各位见谅,希望对大家有用!

编辑于 2016-12-25 11:31