为了账号安全,请及时绑定邮箱和手机立即绑定

asp.net GridView分页

asp.net GridView分页

梦里花落0921 2018-12-07 07:31:35
用GridView进行分页时,分页大小为6,第一页有6行,第二页只有一行, 这样的话,当点击第二页回到第一页时,出现如下错误! 索引超出范围。必须为非负值并小于集合大小。 参数名: index 行 55: { 行 56: int index = Convert.ToInt32(e.CommandArgument); 行 57: GridViewRow row = gdv.Rows[index]; 行 58: int userID = Convert.ToInt32(row.Cells[0].Text.ToString()); 行 59: if (e.CommandName == "upgrade") 后台代码: protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e) { gdv.PageIndex = e.NewPageIndex; DataTable dt = BLL.Upgrade.select(); this.gdv.DataSource = dt; this.gdv.DataBind(); //重新绑定GridView数据 } 如何才能解决,实现没有错误!
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

 你出错的根本不是翻页代码,你贴的后台源码没有什么用。

是你的index超出范围,我的理解e.CommandArgument的值翻页后有变化,你调试跟踪一下不就ok了。

另外e.CommandArgument的值你是想用来取每行的userID吧。这段代码你要放在page_load中才行,不能放在isPostBack里面。否则index不会刷新。你看似翻页没问题,其实第一页到第二页已经不对了,不信你可以用8条记录试试,只是你正好第二页只有一条不会错,返回时才出现而已。

查看完整回答
反对 回复 2019-01-21
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

GridView_PageIndexChanging中的代码是没有错的,是不是你的其他的地方有错误啊!还是GridView属性设置的问题啊!可以按照一楼的提议试试啊!

查看完整回答
反对 回复 2019-01-21
  • 2 回答
  • 0 关注
  • 297 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信