【发布时间】:2014-11-09 06:02:36
【问题描述】:
我正在尝试在按钮单击事件中从 gridview 中删除选定的行,但出现以下错误:
集合已修改;枚举操作可能不会执行。
代码:
protected void btnRemoveUser_Click(object sender, EventArgs e)
{
DataTable yourDataTable = GetDataTable(Studentlist);
//CheckBox chkbx;
foreach(GridViewRow oneRow in Studentlist.Rows)
{
CheckBox chkbx = (CheckBox)oneRow.FindControl("ckbxID");
foreach (DataRow rowDT in yourDataTable.Rows) **//In this line throwing the exception**
{
if (chkbx.Checked == true)
{
yourDataTable.Rows.Remove(rowDT);
}
}
}
Studentlist.DataSource = yourDataTable;
Studentlist.DataBind();
}
注意:Studentlist 是 gridview ID。
【问题讨论】:
-
Dnyanesh 说:“你不能在对它执行 foreach 时从集合中删除项目”这是真的,所以尝试声明另一个数据表“DataTable newDataTable = yourDataTable;”并从 newDataTable 中删除行,最后将其传递给数据源
标签: asp.net gridview datatable