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 交通频道 作文范文 感受那一幕?友情作文500字 会读书的眼睛最美 西江月辛弃疾阅读答案 听田顺儿歌 攀登长城 食品安全,我的心愿 2016交通安全保证书 难道这世上真的没有我们的生存空间吗 约好的青春不迟到(二)作文900字 高端三八妇女节祝福 生男还是生女? 旅行,在“七一” 两个人在一起要这样才会持久 “美” 在异乡中秋祝福语 教育方面怪现象作文 童年的时光作文450字 政务室上半年工作小结 读《桃花心木》有感作文400字 一场与众不同的考试 有关党的手抄报:党在我心 议论文作文400字:信任 初中读后感600 10月入党思想汇报范文:端正自己的态度 驾校教练员个人总结2015 小学四年级作文400字:谁动了小松鼠的核桃 请勿停车个性标语 《春风掀不动小草的静波》 唯美的文字说说心情短语 那段挥之不去的爱还在继续我要怎么做 被爱的感觉500字 高中生变形记读后感1000字 林场年度党务工作总结 初中初二作文1000字:一群鸽子感动了我 (人和动物和谐相处的故事) 高中高三作文1000字:七彩的彩虹 水利管理处上半年工作小结和下半年工作计划 让生命焕发光彩 如果我是福尔摩斯 表达多愁善感的句子 小学六年级作文600字:我学会了成长 免费《梦溪笔谈二则》教案2 拥抱回忆作文600字 辞冬迎春的那场飞雪 初中初一作文650字:2020年,大西北的“白杨树” 学习"三抓一促"精神心得体会 被寻找的人远比主动寻找的人要幸福 野草全集 擦窗250字 老师,我想对您说作文1500字 最新的母亲节作文

Copyright © 2016 phpStudy |