从按钮单击事件中的复选框选择中删除gridview数据表中的行

时间:2014-11-09 06:02:37

标签: asp.net gridview datatable

我试图在按钮点击事件中从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。

1 个答案:

答案 0 :(得分:0)

您在执行foreach时无法从集合中删除项目,详情请访问this

现在您可以使用简单的技术删除项目。

for(int i = 0; i< yourDataTable.Rows.Count; i++)
  {
      if (chkbx.Checked == true)
      {
          yourDataTable.Rows.RemoveAt(i);
      }
  }