asp.net中Gridview错误的RowIndex

时间:2014-12-19 12:47:55

标签: c# asp.net gridview checkbox

我在Checkbox的帮助下实现批量删除功能。但是当我打电话给下面的ID时

string Id = grdUser.DataKeys[e.RowIndex].Value.ToString();

我收到错误

  

System.EventArgs不包含RowIndex的定义。

我不知道为什么会这样。请参阅我的代码供您参考: -

 protected void btnDelete_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow gvRow in grdUser.Rows)
        {
            CheckBox chkDelete = (CheckBox)grdUser.FindControl("chkDelete");
            if (chkDelete.Checked)
            {
                string Id = grdUser.DataKeys[e.RowIndex].Value.ToString();
            }
        }
    }

让我知道我必须做出哪些改变

2 个答案:

答案 0 :(得分:1)

您应该按照Sandeep的说明添加gvRow.RowIndex

然后你必须像这样绑定你的gridview。

 protected void btnDelete_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow gvRow in grdUser.Rows)
        {
            if (gvRow.RowType == DataControlRowType.DataRow)
            {
                CheckBox chkDelete = (CheckBox)gvRow.FindControl("chkDelete");
                if (chkDelete.Checked)
                {
                    string Id = grdUser.DataKeys[gvRow.RowIndex].Value.ToString();
                    DeleteRecordByID(Id);
                }
            }
        }

       //Bind your Gridview here
    }

让我知道它是否有效

答案 1 :(得分:0)

您可以使用以下代码

for (int i = 0; i < grdUser.Rows.Count; i++)
{
    //Your logic and use   grdUser.DataKeys[i].Value.ToString();
      for delete


}