当我没有在我的 gridview
中选择 checkbox
并按下 delete 按钮时,它显示错误“No Check box has been selected”但是在那之后当我选择 checkbox
并点击删除按钮它仍然显示错误不知道为什么?
我没有使用任何数据库,我只使用 datatable
和 gridview
。
这是删除按钮的代码
protected void DeleteButton_Click(object sender, EventArgs e)
{
var dt = (DataTable)ViewState["CurrentData"];
if (dt == null)
{
return;
}
List<DataRow> rowsToDelete = new List<DataRow>();
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("CheckBox1");
if (cb != null && cb.Checked)
{
row.Visible = false;
//remove row by its index as it should GridViewRow index == DataRow index
//it is not the best way but from your code I dont have information how your GridView looks
dt.Rows.RemoveAt(row.RowIndex);
GridView1.DataSource = dt;
GridView1.DataBind();
GridView2.DataSource = dt;
GridView2.DataBind();
ViewState["CurrentData"] = dt;
}
else
{
lblError.Visible = true;
}
for (int i = 0; i < rowsToDelete.Count; i++)
{
dt.Rows.Remove(rowsToDelete[i]);
}
}
最佳答案
请运行这段代码。
protected void Button2_Click(object sender, EventArgs e)
{
var dt = (DataTable)ViewState["CurrentData"];
if (dt == null)
{
return;
}
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("CheckBox2");
if (cb != null && cb.Checked)
{
Label1.Visible = false;
dt.Rows.RemoveAt(row.RowIndex);
GridView1.DataSource = dt;
GridView1.DataBind();
GridView2.DataSource = dt;
GridView2.DataBind();
ViewState["CurrentData"] = dt;
}
else if (cb.Checked == false)
{
Label1.Visible = true;
}
}
}
关于c# - 如何在未选中复选框的情况下按删除按钮时在客户端显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787189/