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 交通频道 作文范文 搞笑祝福语:搞笑对话篇 供货合同简易范本 我们村的老红军作文400字 第二次离婚起诉书范本2017 2013端午放假安排 关于青年节的来历300字 周宏翔:最美好的事莫过于找回自己 幸福自在人心作文900字 能让人瞬间就哭的话 人生的排比句 初中初一作文700字:意见高兴的事 一边前行,一边怀恋 初中作文我的成长 贯彻"三贴近"原则,提高政治课实效 拖鞋找我们 市场营销专业学生毕业实习报告 2015趣味比赛活动方案 白杨礼赞作文300字 第五单元作文:珍惜生命之花 希望你累的时候也可以靠在我的肩膀 假如我是我500字 乡镇2011年工作开展情况及2012年工作计划 中国国际收支双顺差的现状及成因 乡镇委员会保密工作总结经典范文 描写梦的诗句 写给前桌的一封信作文 见与不见全文 真的,很累了 在2005年省派选调生迎送会上的讲话 充满智慧的人生境界所拥有的16个特色 是英雄还是狗熊 小学六年级作文400字:垃圾箱的自述 小学四年级作文400字:[自然--初二]月光如水水如天 2015元旦给上级的祝福语 教师节的来历50字 “黄土坑”的往事拾零(二):摔泥炮 这件事教育了我作文500字 去赴秋的宴会!作文1000字 母亲节给妈妈一声祝福,一点关心 月光古声作文600字 抓河蟹 大学生家乡支教实习报告 读《了不起的狐狸爸爸》有感800字 清平乐·村居作文200字 初中初二作文550字:埃及金字塔的来历 市级优秀班主任申报材料 夸人工作认真的句子 (原创中)写在“3.8”妇女节的心里话 我愿意为迩付出我的一切㈥ 4月医院工作总结

Copyright © 2016 phpStudy |