asp.net gridview的Rowcommand命令中获取行索引的方法总结


一、通过命令源获取当前行索引。

方法比较多, GridView 的 Command 事件中无法象 DataGrid 那样直接获取行,

法1,
GridViewRow drv = ((GridViewRow)(((Button)(e.CommandSource)).Parent.Parent));//CommandSource 引起事件的命令源,(疑问,根据MSDN说的是GridView,如果这样的话这样操作是错误的,但我得到的确实正确的,那说明得到的是BUtton控件,等待以后查证).
drv.RowIndex


二、通过在RowDataBound事件中把行索引绑定到控件的CommandArgument

由于事件参数 GridViewCommandEventArgs 并不公开Row属性指示当前行,(DataGridCommandEventArgs 公开 Item 属性以获取当然 DataGridItem,不知 ASP.NET Team 是如何考虑这一设计的),因此需要一点“技巧”来获取此属性。

其实这是一个早就已知的问题,鉴于CSDN里面每每有人疑惑,这里稍微整理下,便于参阅:

复制代码 代码如下:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int rowIndex = -1;
GridViewRow row = null;
switch (e.CommandName) ...{
case "Command1": // 模板列
// 对于模板列内的按钮,我们需要显示绑定行索引到按钮的 CommandArgument 属性
// 以获取触发事件的行信息
rowIndex = Convert.ToInt32(e.CommandArgument);
row = GridView1.Rows[rowIndex];
DisplayInfo(row, e.CommandName);
// your codes
//
break;
case "Command2": // 模板列
// 同样处于模板列中,但不采用 Command1 方式,而是通过 NamingContrainer 属性
// 直接获取当前的 GridViewRow
Control cmdControl = e.CommandSource as Control; // 表示触发事件的 IButtonControl,保持统一性并便于后续操作,我们这里直接转化为控件基类 Control
row = cmdControl.NamingContainer as GridViewRow;
DisplayInfo(row, e.CommandName);
// your codes
//
break;
case "Command3": // 绑定列
// 对于 ButtonField 列,数据源控件内部自动以适当的项索引值填充 CommandArgument 属性。
// 而无需我们显示绑定其 CommandArgument 属性
// 注意,我们这里无法采用 Command2 的方式,对于 BUttonField 触发的事件,
// GridViewCommandEventArgs.CommandSource 表示的包含此按钮的 GridView
rowIndex = Convert.ToInt32(e.CommandArgument);
row = GridView1.Rows[rowIndex];
DisplayInfo(row, e.CommandName);
// your codes
//
break;
}
}



相关阅读:
extjs 初始化checkboxgroup值的代码
windows系统无法运行.exe可执行文件的解决办法
在LINUX系统下安装卡巴斯基杀毒网络版
Linux下磁盘配额管理技巧
asp.net 无刷新翻页就是这么简单
javaScript Array(数组)相关方法简述
PHP面向对象概念
JavaScript+JSP打造二级级联下拉菜单
jquery向.ashx文件post中文乱码问题的解决方法
页面中js执行顺序
从零学DedeCms模板教程
ASP.NET遍历页面的所有button控件
jQuery.browser对象查看浏览器相关信息的的示例
Linux 修改系统日期和时间
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 谁起得早作文350字 秋意含霜,静怡简雪《八》 爱情短信句子 化学专业怎么样 能凑合到老也是一种幸福 大班科学教案:家用电器 2015政府公文报告格式 2016中秋节短信特别版 爱情分隔开 观《唐山大地震》有感 人生,总是始料不及 初中英语教研组工作总结 优秀的英文求职信 校园的幸福生活 送朋友的中秋节祝福短信 教育心理学如何在教育改革中发挥更重要的作用 游南澳岛的南澳总兵府作文700字 描写桌椅的好词 品味作文200字 爱你在最美好的时光 入党思想汇报工作总结报告 2016优秀班级申请材料 风止秋千上 2015年卫生局工作计划 想要一个家 哭,为何作文100字 活着.领悟人生 “科技伴我成长”主题班会方案 给远方小朋友的一封信_600字 护工自我介绍 《彭威龙》夏日的憧憬 上半年工作总结(统计) 文具们的争吵作文300字 合伙协议模板 北京游记作文300字 辞职报告_辞职报告 空山鸟语 党支部工作创新案例 难忘那道风景 世博,我的企盼 初中初一作文700字:我的天堂 报数游戏 食品药品监督局法制建设现状及存在问题调研 我忘了我 丹枫碧水作文900字 写给博友 关于实习报告格式的最新要求 萍水相逢,过客无期 最牛80后退伍兵创业!开“明星镖局”成为千万富翁 祖国容颜不老

Copyright © 2016 phpStudy |