我放弃了。我一直试图解决这个问题" Target Invocation Exception"每当我遍历gridview中的行时抛出错误。
问题:我正在尝试从用户输入迭代gridview行,接受行号以更改分配给该行的社交工作者。例如。第3行到第4行,从下拉列表名称中分配社会工作者。
当我不使用分页时,错误不会发生。一切正常,但是当我使用分页时,当我单步执行代码时会出现TargetInvocationException。
最后一页,加载后显示,"索引超出范围。必须是非负数且小于集合的大小。"。
我甚至尝试在点击事件期间禁用分页,但似乎无法正常工作。
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上加入分页,并在迭代并将社交工作者分配到下一页的行时转到下一页?
我尝试做的只是访问第二页行。任何有关我出错的帮助或指示都将不胜感激。
提前致谢。
答案 0 :(得分:0)
GridView.Rows
仅包含当前页面上显示的行。您无法通过此属性访问在其他页面上显示的行。相反,请尝试通过分配给GridView.DataSource
属性的DataSource对象访问这些行。