如何删除所有选定的复选框值和特定行

本文关键字:复选框 何删除 删除 | 更新日期: 2023-09-27 17:57:03

我有一个只有标题字段的表。我没有在此表中使用 ID 字段,因为它不是必需的。现在在我的首页上,我有一个显示标题的网格视图,并且有一个列项模板复选框。我想删除所有选定的复选框值和特定行。怎么办。?任何人都可以建议我...提前感谢...我在做..

    private void GetData()
    {
        grdlistWord.
        ArrayList arr;
        if (ViewState["TotalRecords"] != null)
        {
            arr = (ArrayList)ViewState["TotalRecords"];
        }
        else
        {
            arr = new ArrayList();
        }
        for (int i = 0; i < grdlistWord.Rows.Count; i++)
        {
            CheckBox chk = (CheckBox)grdlistWord.Rows[i].Cells[0].FindControl("chkWord");
            if (chk.Checked)
            {
                if (!arr.Contains(grdlistWord.DataKeys[i].Value))
                {
                    arr.Add(grdlistWord.DataKeys[i].Value);
                }
            }
            else
            {
                if (arr.Contains(grdlistWord.DataKeys[i].Value))
                {
                    arr.Remove(grdlistWord.DataKeys[i].Value);
                }
            }
            //}
        }
        ViewState["TotalRecords"] = arr;
    }
    protected void lnkbtnDelete_Click(object sender, EventArgs e)
    {
        {
            try
            {
                int count = 0;
                //SetData();
                //gvAll.AllowPaging = false;
                //gvAll.DataBind();
                ArrayList arr = (ArrayList)ViewState["TotalRecords"];
                count = arr.Count;
                for (int i = 0; i < grdlistWord.Rows.Count; i++)
                {
                    //string a = grdlistWord.Rows.Count.ToString();
                    //Response.Write(a.ToString());
                    if (arr.Contains(grdlistWord.DataKeys[i].Value))
                    {
                        DeleteRecord(grdlistWord.DataKeys[i].Value.ToString());
                        arr.Remove(grdlistWord.DataKeys[i].Value);
                    }
                }
                ViewState["TotalRecords"] = arr;
                //hfCount.Value = "0";
                //gvAll.AllowPaging = true;
                GridBind();
                //ShowMessage(count);
            }
            catch (SqlException ex)
            {
                ex.ToString();
            }
        }
    }

    private void DeleteRecord(string word)
    {
        string query = "delete from searchword where word=@word";
        SqlCommand cmd = new SqlCommand(query, con);
        cmd.Parameters.AddWithValue("@word", word);
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }

网页代码:

词:
    <fieldset>
        <legend>List</legend>
        <asp:GridView ID="grdlistWord" runat="server" DataKeyNames="word" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" OnRowDataBound="grdlistWord_RowDataBound" OnRowDeleting="grdlistWord_RowDeleting" Width="456px" >
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkWord" runat="server" onclick="check_click(this);" OnCheckedChanged="chkWord_CheckedChanged" />
                    </ItemTemplate>
                    <HeaderTemplate>
                        <asp:CheckBox ID="chkAll" runat="server" onclick="checkAll(this);" />
                        <asp:LinkButton ID="lnkbtnDelete" runat="server" Text="Delete" OnClick="lnkbtnDelete_Click" ForeColor="white"></asp:LinkButton>
                    </HeaderTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Word" HeaderText="Word" />
                <asp:HyperLinkField HeaderText="Edit" Text="edit" DataNavigateUrlFields="Word" DataNavigateUrlFormatString="SearchWord.aspx?words={0}&amp;mode=Edit" />
                <asp:CommandField ShowDeleteButton="True" HeaderText="Delete" />
            </Columns>
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <EditRowStyle BackColor="#999999" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <EmptyDataTemplate>Records not exist!</EmptyDataTemplate>
        </asp:GridView>
        <asp:HiddenField ID="hfCount" runat="server" Value = "0" />
    </fieldset>

如何删除所有选定的复选框值和特定行

这个页面看起来有一个答案给你 - 很难说,尽管你在问题中提供的信息量有限。

您需要处理复选框的 CheckedChanged 事件,并在该行中检索相应的标题值。然后编写 SQL 代码以删除表中标题等于此标题值的所有行。将 ExecuteNonQuery 与 SqlCommand 对象一起使用以运行此语句并执行删除。