点击GridView模版列里的按钮取GridView当前被操作行的数据
2009-05-25 08:05
302 查看
点击GridView模版列里的按钮取GridView当前被操作行的数据
这种情况经常都会有的,就是在GridView里加一个模版列,里面放一些按钮,然后呢,点击这些按钮的时候,要可以取到GridView当前被点击的行的字段里的内容 一般有两种情况,只需要取一个字段的值,和要取多个字段的值,其实都是一样的方法,就是使用CommandArgument属性 一、只需要取一个字段的值: 在GridView里的定义 <asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:Button ID="Button1" runat="server" Text="取编号" CommandArgument='<%# Eval("id") %>' CommandName="getID" /> </ItemTemplate> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateField> 红色那里,就是设置这个按钮带到传递的参数是当前行的id字段的值,看后台的代码 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "getID") { Response.Write("<br>id:" + e.CommandArgument); Button mybt = new Button(); mybt = (Button)e.CommandSource; Response.Write("<br>text:" + mybt.Text); Response.Write("<br>type:" + sender.GetType().ToString()); } 看见我使用了e.CommandSource取被点击的按钮的Text属性没有? 有时候按钮可能会因为一个字段的值不同,就有不同的Text属性,嗯,如果一个表里有记录“是否启用”这样的字段,就经常需要在显示他的GridView里加模版列,显示“启用”、“禁用”这样的快速操作按钮,如果每一行记录都显示两个按钮,是很难看的,所以可以使用一个按钮,进行两种操作,按钮可以这样定义: <asp:Button ID="Button1" runat="server" Text='<%# Convert.ToInt32(Eval("isUse"))==0:"启用"?"禁用" %>' CommandArgument='<%# Eval("id") %>' CommandName="getID" /> 看他的Text属性,如果isUse字段的值是0,那当前记录是在禁用状态的,所以快捷操作按钮应该显示“启用”,否则呢,就显示“禁用” 然后呢,就可以在RowCommand事件里,使用e.CommandSource取这个按钮的Text属性,判断当前的操作是要“启用”还是“禁用”了 二、要取多个字段的值 因为CommandArgument属性只可以传递一个值,所以如果要传递多个字段的值的时候,最好是转化成传递当前行的行号,如果我们有GridView的一个行号,我们就可以取到这一行的所有数据了 在GridView里的定义 <asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:Button ID="Button2" runat="server" Text="取行号" CommandArgument='<%# Container.DataItemIndex + 1 %>' CommandName="getRow" /> </ItemTemplate> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateField> 看红色那里,利用了绑定<%# 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模版列里的按钮取GridView当前被操作行的数据
- 点击GridView模版列里的按钮取GridView当前被操作行的数据
- GridView模版列里的按钮取GridView当前被操作行的数据或id
- 点击按钮取GridView当前被操作行的数据
- html基础 提交按钮 数据重置按钮 带图片的按钮 普通按钮,点击关闭当前页面
- html基础 提交按钮 数据重置按钮 带图片的按钮 普通按钮,点击关闭当前页面
- 关于 DataList 、gridview 、 repeter 点击当前行的按钮 获取当前行的某个值
- EasyUI table中点击按钮获取当前行数据
- gridview 自定义按钮 如何取得当前行的得数据,或者关键字段的方法
- GridView用模版里的按钮在RowCommand中取出当前的行号来的方法(实用)(高级内容)
- 不使用GridView自带编辑删除等等按钮,放置服务器控件的按钮。获取点击按钮的当前行以便进行编辑删除
- 在按钮事件中访问GridView中当前行数据
- android gridview默认显示部分数据,点击按钮显示全部,再点击回到默认状态,选中变颜色
- .netMVC实现当前页多个数据修改,按钮点击分类别显示
- 点击gridview的摸板列用javascript获得当前行数据
- gridview分页以及点击按钮选取某行数据
- [学习笔记][ASP.NET2.0][GridView][在按钮事件中访问GridView中当前行数据]
- submit在第一次点击按钮后且页面没有得到响应前,多次点击向后台发送数据情况说明