如何删除带有删除按钮的复选框

时间:2014-03-13 18:10:44

标签: javascript vb.net button checkbox datagrid

我正在尝试删除带有删除按钮(Deletebtn)的复选框onClick Delete Selected 我在datagrid表中有两个复选框标题chkAll和item chkRow。

Sub DeleteSelected(sender as object, e as System.EventArgs)

  Dim item As DataGridItem
  Dim SQLRemoveItem As String

   For Each item In OrderForm.Items


      Dim selection As CheckBox = _
          DirectCast(item.Cells(12).FindControl("chkRow"), CheckBox)

        If  selection IsNot Nothing

        ' AndAlso selection.Checked then

           Dim SQLCheck As String = "select id, isbn from order_detail where ordernumber='{0}' and isbn ='{1}'"
           Dim Check As DataTable = Database.SelectRows(String.Format(SQLCheck, OrderNumber.Text, Item.cells(3).Text))

           SQLRemoveItem = "Delete from order_detail where id = '{0}'" 

           Database.InsertRecord(String.Format(SQLRemoveItem, Check.Rows(0)("id")))

        End if


    Next Item


    BindOrderForm() 'Rebind data after delete

End Sub

 <script type="text/javascript">
$("[id*=chkAll]").live("click", function () {
    var chkAll = $(this);
    var grid = $(this).closest("table");
    $("input[type=checkbox]", grid).each(function () {
        if (chkAll.is(":checked")) {
            $(this).attr("checked", "checked");
            $("td", $(this).closest("tr")).addClass("selected");
        } else {
            $(this).removeAttr("checked");
            $("td", $(this).closest("tr")).removeClass("selected");
        }
    });
});
$("[id*=chkRow]").live("click", function () {
    var grid = $(this).closest("table");
    var chkAll = $("[id*=chkAll]", grid);
    if (!$(this).is(":checked")) {
        $("td", $(this).closest("tr")).removeClass("selected");
        chkAll.removeAttr("checked");
    } else {
        $("td", $(this).closest("tr")).addClass("selected");
        if ($("[id*=chkRow]", grid).length == $("[id*=chkRow]:checked", grid).length) {
            chkAll.attr("checked", "checked");
        }
    }
});
</script>

<asp:TemplateColumn>
<HeaderTemplate>
<asp:CheckBox id="chkAll" runat="server"   />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="chkRow" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>

我的问题是,当我尝试搜索chkRow并删除所选的chkrow框时。它删除了一切!

如果我应该添加选择。检查它什么都不做,不知道我哪里出错了。 求救!

1 个答案:

答案 0 :(得分:0)

您的代码将删除所有内容,因为您遍历所有行,检查是否存在复选框,然后删除该行。由于您有一个复选框列,因此始终会找到该复选框。我可以看到您的注释行,以便了解您的尝试。

我认为你应该这样做:

调试代码并获取item.Cells(12)的值。我相信它应该设置为“真”或“假”。您不必为了获取值而对单元格进行类型转换。我敢打赌,item.Cells(12).ToString()就足以得到它了。

然后创建一个恰当的if语句:

If item.Cells(12).ToString() = "true"