我试图在按钮点击事件中从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。
答案 0 :(得分:0)
您在执行foreach时无法从集合中删除项目,详情请访问this。
现在您可以使用简单的技术删除项目。
for(int i = 0; i< yourDataTable.Rows.Count; i++)
{
if (chkbx.Checked == true)
{
yourDataTable.Rows.RemoveAt(i);
}
}