点击GridView模版列里的按钮取GridView当前被操作行的数据
来源:百度文库 编辑:神马文学网 时间:2024/04/25 20:08:44
这种情况经常都会有的,就是在GridView里加一个模版列,里面放一些按钮,然后呢,点击这些按钮的时候,要可以取到GridView当前被点击的行的字段里的内容
一般有两种情况,只需要取一个字段的值,和要取多个字段的值,其实都是一样的方法,就是使用CommandArgument属性
一、只需要取一个字段的值:
在GridView里的定义
‘ CommandName="getID" />
红色那里,就是设置这个按钮带到传递的参数是当前行的id字段的值,看后台的代码
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "getID")
{
Response.Write("
id:" + e.CommandArgument);
Button mybt = new Button();
mybt = (Button)e.CommandSource;
Response.Write("
text:" + mybt.Text);
Response.Write("
type:" + sender.GetType().ToString());
}
看见我使用了e.CommandSource取被点击的按钮的Text属性没有?
有时候按钮可能会因为一个字段的值不同,就有不同的Text属性,嗯,如果一个表里有记录“是否启用”这样的字段,就经常需要在显示他的GridView里加模版列,显示“启用”、“禁用”这样的快速操作按钮,如果每一行记录都显示两个按钮,是很难看的,所以可以使用一个按钮,进行两种操作,按钮可以这样定义:
‘ CommandArgument=‘<%# Eval("id") %>‘ CommandName="getID" />
看他的Text属性,如果isUse字段的值是0,那当前记录是在禁用状态的,所以快捷操作按钮应该显示“启用”,否则呢,就显示“禁用”
然后呢,就可以在RowCommand事件里,使用e.CommandSource取这个按钮的Text属性,判断当前的操作是要“启用”还是“禁用”了
二、要取多个字段的值
因为CommandArgument属性只可以传递一个值,所以如果要传递多个字段的值的时候,最好是转化成传递当前行的行号,如果我们有GridView的一个行号,我们就可以取到这一行的所有数据了
在GridView里的定义
‘ CommandName="getRow" />
看红色那里,利用了绑定<%# Container.DataItemIndex + 1 %>传递当前行号,DataItemIndex是从0开始的,所以每一行都要加1
后台
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "getRow")
{
Response.Write("当前行号为:" + e.CommandArgument);
}
}
有了当前行的行号,就可以用GridView1.Rows[e.CommandArgument].Cells[i].Text取第i列的值了,如果有一列是模版列,也可以用FindControl方法取值
一般有两种情况,只需要取一个字段的值,和要取多个字段的值,其实都是一样的方法,就是使用CommandArgument属性
一、只需要取一个字段的值:
在GridView里的定义
红色那里,就是设置这个按钮带到传递的参数是当前行的id字段的值,看后台的代码
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "getID")
{
Response.Write("
id:" + e.CommandArgument);
Button mybt = new Button();
mybt = (Button)e.CommandSource;
Response.Write("
text:" + mybt.Text);
Response.Write("
type:" + sender.GetType().ToString());
}
看见我使用了e.CommandSource取被点击的按钮的Text属性没有?
有时候按钮可能会因为一个字段的值不同,就有不同的Text属性,嗯,如果一个表里有记录“是否启用”这样的字段,就经常需要在显示他的GridView里加模版列,显示“启用”、“禁用”这样的快速操作按钮,如果每一行记录都显示两个按钮,是很难看的,所以可以使用一个按钮,进行两种操作,按钮可以这样定义:
看他的Text属性,如果isUse字段的值是0,那当前记录是在禁用状态的,所以快捷操作按钮应该显示“启用”,否则呢,就显示“禁用”
然后呢,就可以在RowCommand事件里,使用e.CommandSource取这个按钮的Text属性,判断当前的操作是要“启用”还是“禁用”了
二、要取多个字段的值
因为CommandArgument属性只可以传递一个值,所以如果要传递多个字段的值的时候,最好是转化成传递当前行的行号,如果我们有GridView的一个行号,我们就可以取到这一行的所有数据了
在GridView里的定义
看红色那里,利用了绑定<%# Container.DataItemIndex + 1 %>传递当前行号,DataItemIndex是从0开始的,所以每一行都要加1
后台
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "getRow")
{
Response.Write("当前行号为:" + e.CommandArgument);
}
}
有了当前行的行号,就可以用GridView1.Rows[e.CommandArgument].Cells[i].Text取第i列的值了,如果有一列是模版列,也可以用FindControl方法取值
点击GridView模版列里的按钮取GridView当前被操作行的数据
gridview的事件大全
gridview的事件大全
将gridview数据导入到Exccl里
ASP.NET2.0中用Gridview控件操作数据
[翻译]用DataSource控件以外的方法为GridView提供数据 - 专注于.Net WebApplication技术 - 博客园
GridView中的DataKeyNames在RowDeleting 时的用法
关于GridView中选择当前行的问题
GridView“GridView1”激发了未处理的事件“PageIndexChangin...
获取GridView/DataList控件中的子控件的方法
声明式数据绑定教程-SqlDataSource 与 GridView
ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!...
验证GridView绑定SqlDataSource删除行时的事件执行顺序(原创)
验证GridView绑定SqlDataSource删除行时的事件执行顺序(原创) - Qz...
net中如何用findcontrol获得GridView自定义控件的值
GridView 特性总结
GridView控件显示空格
当点击按钮如何在asp.net 2.0中重新加载当前的页面
Displaying popup listview/gridview within a Listview/gridview?
GridView header on 2 column
GridView、DataGrid、DataList、Repeater、ListView、...
GridView header on 2 column
把Excel里的一列数据快速转成多列数据
按钮点击顺序,并获取按钮的id