网格视图错误的行索引 asp.net

本文关键字:索引 asp net 视图 错误 网格 | 更新日期: 2023-09-27 18:34:52

我正在复选框的帮助下实现批量删除功能。但是当我像下面这样调用 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();
            }
        }
    }

请让我知道我必须进行哪些更改

网格视图错误的行索引 asp.net

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

然后,您必须像这样绑定网格视图。

 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
    }

让我知道它是否有效

您可以使用以下代码

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

}