c# - 如何在未选中复选框的情况下按删除按钮时在客户端显示错误消息

标签 c# asp.net gridview textbox

当我没有在我的 gridview 中选择 checkbox 并按下 delete 按钮时,它显示错误“No Check box has been selected”但是在那之后当我选择 checkbox 并点击删除按钮它仍然显示错误不知道为什么? 我没有使用任何数据库,我只使用 datatablegridview

这是删除按钮的代码

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/

相关文章:

c# - 使用yield return 返回继承基类型的对象

c# - 当用户单击表头时,如何对 List<T> 进行排序?

asp.net - 为什么我在尝试使用 URL 访问下载 SSRS 报告时收到 500 错误?

c# - 用于数据采集的快速响应式 GridView?

c# - 如何从泛型内部获取类类型?

c# - 将值 Ad 属性更新为 null 或空得到错误?

asp.net - 带有虚拟目录的 ASP.net 母版页中的基本 URL

c# - 从 ModalPopup 回发,但保持可见?

html - 由于正在应用 Bootstrap 属性,无法使 gridview 的标题对齐中心

c# - C#中类实例数组的优雅初始化