2014-03-13 115 views
0

我想刪除一個複選框刪除按鈕(Deletebtn)onClick刪除選中 我有兩個複選框的數據網格表中的標題chkAll和項目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框。它刪除了一切!

如果我應該添加選擇。檢查它什麼也不做,不知道我哪裏出錯了。 請幫忙!

+0

你是什麼意思它刪除「一切」? – VtoCorleone

+0

它刪除數據網格中的所有行,而不是那些被選中的行。 – user3142046

+0

你有沒有嘗試通過你的代碼,並找出爲什麼你的jQuery選擇器獲取所有的行而不是隻是選中的行? – VtoCorleone

回答

0

您的代碼將刪除所有內容,因爲您循環遍歷所有行,檢查是否存在複選框,然後刪除該行。由於您有複選框列,因此始終可以找到該複選框。我可以看到你的評論欄目,所以我明白你的嘗試。

這是我認爲你應該做的:

調試代碼,並獲得item.Cells(12)的值。我相信它應該設置爲「真實」或「虛假」。您不必爲了獲得價值而對單元格進行類型轉換。我敢打賭,item.Cells(12).ToString()就足夠了。

然後創建一個合適的if語句看起來是這樣的:

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

它的工作!謝謝 – user3142046