问题
I am implementing the bulk delete functionality with the help of Checkbox. But when I call the ID like below
string Id = grdUser.DataKeys[e.RowIndex].Value.ToString();
I get the error as
System.EventArgs does not contain a definition of
RowIndex.
I dont know why it is happening. Please see my code for your reference:-
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();
}
}
}
Do let me know what changes I have to make
回答1:
You should add the gvRow.RowIndex as stated by Sandeep.
Then you have to bind your gridview somewhat like this.
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
}
Let me know if it works or not
回答2:
you can Use Below Code
for (int i = 0; i < grdUser.Rows.Count; i++)
{
//Your logic and use grdUser.DataKeys[i].Value.ToString();
for delete
}
来源:https://stackoverflow.com/questions/27566544/rowindex-of-gridview-error-in-asp-net