当使用分页时,索引超出范围

时间:2014-06-20 20:08:53

标签: c# asp.net gridview

我放弃了。我一直试图解决这个问题" Target Invocation Exception"每当我遍历gridview中的行时抛出错误。

问题:我正在尝试从用户输入迭代gridview行,接受行号以更改分配给该行的社交工作者。例如。第3行到第4行,从下拉列表名称中分配社会工作者。

enter image description here

当我不使用分页时,错误不会发生。一切正常,但是当我使用分页时,当我单步执行代码时会出现TargetInvocationException。

enter image description here

最后一页,加载后显示,"索引超出范围。必须是非负数且小于集合的大小。"。 enter image description here enter image description here

我甚至尝试在点击事件期间禁用分页,但似乎无法正常工作。

var fromCount = Convert.ToInt32(txtFrom.Text)
var toCount = Convert.ToInt32(txtTo.Text);
for (int rows=fromCount; rows <= toCount; rows++)
{
  GridView1.AllowPaging = false;
  int row = rows - 1;
  var pi = db.PatientInfos.SingleOrDefault(x => x.PatientID == Convert.ToInt32(GridView1.Rows[row].Cells[1].Text));
  pi.UserName = userId;
 }
 db.SubmitChanges();
 BindPatientList(); 

那么有没有办法让我解决这个问题,在gridview上加入分页,并在迭代并将社交工作者分配到下一页的行时转到下一页?

我尝试做的只是访问第二页行。任何有关我出错的帮助或指示都将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

GridView.Rows仅包含当前页面上显示的行。您无法通过此属性访问在其他页面上显示的行。相反,请尝试通过分配给GridView.DataSource属性的DataSource对象访问这些行。

相关问题