我用DataGrid分页,设置一下就可以分页了.
但当我在DataGird加入"选择"列后,再点分页页码,就出错:指定的参数已超出有效值的范围。参数名: index 是在DataGrid1_ItemCommand事件中下面语句的出错
int ID=Convert.ToInt32(e.Item.Cells[2].Text);//这里我把点"选择"的那行的第三列的ID值取出如果DataGrid不设置分页,上面的ItemCommand事件是没问题的.什么原因呢?
但当我在DataGird加入"选择"列后,再点分页页码,就出错:指定的参数已超出有效值的范围。参数名: index 是在DataGrid1_ItemCommand事件中下面语句的出错
int ID=Convert.ToInt32(e.Item.Cells[2].Text);//这里我把点"选择"的那行的第三列的ID值取出如果DataGrid不设置分页,上面的ItemCommand事件是没问题的.什么原因呢?
解决方案 »
- 服务器控件绑定JS脚本
- treeview怎么设置可以点击字体就可以展开
- 如何实现首页图片广告的显示和隐藏,广告信息存在数据库,图片地址在文件夹,用的是模板,需要写basepage中写一方法调用
- 地址栏传值问题
- goody9807老大,再次求教 !!!!!
- 100分formview中如何使用findcontrol??高手看过来
- 我想实现点一下按钮,就就从TextBox取值,在DataGrid里动态加一行。
- 背景音乐太棒了,好想下载
- 存粹的b/s模式的进销存系统的可行性,前景如何?欢迎大家来指点!
- 我在web.config文件中定义了数据库连接字符串,请问在自己写的*.vb文件中可以调用到么?
- 针对七八十万条的数据表做每个字段匹配查询,用什么方法可以提高其性能,求助!
- 现在有一个三层 B/S结构系统,(浏览器、WEB服务器、数据库)
就是点"下一页"翻页后,出错:指定的参数已超出有效值的范围。参数名: index
是在DataGrid1_ItemCommand事件中下面语句的出错
int ID=Convert.ToInt32(e.Item.Cells[2].Text);//这里我把点"选择"的那行的第三列的ID值取出在没写DataGrid1_ItemCommand事件以前是可以翻页的.
SET @pagenum = 2
SET @pagesize = 3
SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY score DESC, speaker) AS rownum,
speaker, track, score
FROM SpeakerStats) AS D
WHERE rownum BETWEEN (@pagenum-1)*@pagesize+1 AND @pagenum*@pagesize
ORDER BY score DESC, speaker
int ID=Convert.ToInt32(e.Item.Cells[2].Text);
}改为如下试试:
void datagrid1_ItemCommand(object src,DataGridItemEventArgs e){
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
int ID=Convert.ToInt32(e.Item.Cells[2].Text);
}
}
按你的做法,搞定了.
为什么要是正常项Item或交替项AlternatingItem才不会:"指定的参数已超出有效值的范围"呢?
=========》
因为你点分页控钮后也引发了DataGrid1_ItemCommand这个事件,但是这时候e.Item就是分页按锯所在的行,这个行中只有一个cell,就是分页按钮所在的cell,所以e.Item.Cells[2]肯定超出索引了
我就接分了。