2012-10-10 90 views
-4

我從數據庫中選擇數據並通過asp:Repeater綁定數據。 我在ItemTemplate中創建複選框並從數據庫接收數據。 我想在任何行上的複選框「選中」時更新數據庫中的數據。JQuery或C#檢查「Checked」多選複選框是否爲真

保護無效myRepeater_ItemDataBound(對象發件人,RepeaterItemEventArgs E) {

 //*** Level ID ***// 
     Label lblLevelID = (Label)(e.Item.FindControl("lblLevelID")); 
     if ((e.Item.FindControl("lblLevelID") != null)) 
     { 
      lblLevelID.Text = DataBinder.Eval(e.Item.DataItem, "LevelID").ToString(); 
      strLevelID = lblLevelID.Text; 
      //MyArr[Convert.ToInt16(In), 0] = strLevelID; 
     } 

...

<asp:Repeater id="myRepeater" runat="server" OnItemDataBound="myRepeater_ItemDataBound"> 
    <HeaderTemplate> 
     <table border="1" style="font-size:12px;" width="800"> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr> 
      <td align="left" width="25"><asp:Label id="lblLevelID" runat="server"></asp:Label>&nbsp;</td> 
      <td align="left" width="350"><asp:Label id="lblLevelDesc" runat="server"></asp:Label>&nbsp;</td> 
      <td align="left" width="25"><asp:Label id="lblChoiceID" runat="server"></asp:Label>&nbsp;</td> 
      <td align="left" width="350"><asp:Label id="lblChoiceDesc" runat="server"></asp:Label>&nbsp;</td> 
      <td align="center" width="50"><%--<input type="checkbox" id="chkSelected" OnCheckedChanged="chkSelected_OnCheckedChanged" AutoPostBack="True" />--%> 
      <asp:CheckBox ID="chkSelected" runat="server" /> 
      <asp:Label ID="lblTest" runat="server"></asp:Label> 
      </td> 
     </tr>   
    </ItemTemplate> 
    </asp:Repeater> 
+3

jQuery如何與該問題相關? – feeela

+0

@ user1734077你試過我的回答嗎? – freebird

回答

2
foreach (RepeaterItem rpItem in myRepeater.Items) 
{ 
    CheckBox chkbx = rpItem.FindControl("chkSelected") as CheckBox; 
    if (chkbx.Checked) 
    { 
    //your code here 
    } 
} 
+0

// ***已選*** // CheckBox chkSelected =(CheckBox)(e.Item.FindControl(「chkSelected」)); ((e.Item.FindControl(「chkSelected」)!= null)) if(DataBinder.Eval(e.Item.DataItem,「Selected」)。ToString()==「True」) { { chkSelected.Checked = true; } }我使用這段代碼來顯示數據庫中的數據,但是我想在更新數據時檢查「Checkbox.Checked」。 – SueSaya

0

使用jQuery

<asp:CheckBox ID="chkSelected" runat="server" CssClass="sb" /> 

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript" language="javascript"></script> 

<script type="text/javascript"> 

$(document).ready(function() { 

    if($(".cb").is(":checked")) 
    { 
     alert("Well done!"); 
    } 

}); 

</script> 

如果你想重新gister change事件:

<script type="text/javascript"> 

$(document).ready(function() { 

    $(".cb").live("change", function(){ 

     if($(this).is(":checked")) 
     { 
      alert("I am checked!"); 
     } 
     else 
     { 
      alert("I am unchecked!"); 
     } 

    }); 

}); 
</script> 

希望它有助於

+0

我嘗試使用代碼但只警告「我沒有選中!」。 – SueSaya

+0

當你檢查它時,它應該提醒「我檢查了!」當你取消選中時,它會提醒「我沒有選中!」。請詳細解釋你所做的事以及你需要幫助的地方。 – Nwafor

0

現在我用這個代碼

protected void myRepeater_ItemDataBound(Object sender, RepeaterItemEventArgs e) 
    { 

     //*** Level ID ***// 
     Label lblLevelID = (Label)(e.Item.FindControl("lblLevelID")); 
     if ((e.Item.FindControl("lblLevelID") != null)) 
     { 
      lblLevelID.Text = DataBinder.Eval(e.Item.DataItem, "LevelID").ToString(); 
      strLevelID = lblLevelID.Text; 
      //MyArr[Convert.ToInt16(In), 0] = strLevelID; 
     } 
     //*** Selected ***// 
     CheckBox chkSelected = (CheckBox)(e.Item.FindControl("chkSelected")); 
     if ((e.Item.FindControl("chkSelected") != null)) 
     { 
      if (DataBinder.Eval(e.Item.DataItem, "Selected").ToString() == "True") 
      { 
       chkSelected.Checked = true; 
       if (chkSelected.Checked) 
       { 
        UpdateData0(); 
       } 
      } 
      else 
      { 
       chkSelected.Checked = false; 
       if (chkSelected.Checked) 
       { 
        UpdateData1(); 
       } 
      } 

     } 

它的顯示數據從數據庫但沒有複選框更新時,我「檢查」。

相關問題