2012-03-09 125 views
1

我想通過所有複選框循環並獲取它們的值,如果它們被選中或沒有,並根據將包含該記錄的ID的值將選中/未選中的數據保存到數據庫中。我正在嘗試通過asp.net做任何建議?循環通過GridView複選框

下面是代碼:

  <Columns> 
       <asp:TemplateField HeaderText="Application" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <%#Eval("App")%> 
        </ItemTemplate>      
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Edit" ItemStyle-Width="25%"> 
        <ItemTemplate> 
         <input name="chkEdit" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Edit") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Delete" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <input name="chkDelete" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Delete") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="View" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <input name="chkView" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("View") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
+0

@DeviantSeev我試圖通過控制用於循環複選框,但沒有奏效...使用JavaScript,我可以得到所有的複選框,但寧願做所有的工作在asp.net也試過。我想看看是否有方法在asp.net中獲得所有的值和檢查/取消選中以外的JavaScript。 – 2012-03-09 22:25:38

+0

一旦用戶點擊「保存」按鈕,我需要通過所有複選框並將其當前狀態保存到表中。 – 2012-03-09 22:28:26

回答

2
string[] controls = new string[] {"chkEdit","chkDelete","chkView"}; 

foreach (GridViewRow r in YourGridView.Rows) 
{ 
    foreach(string cnt in controls){ 
    int value = Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Value); 
    bool isChecked = ((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Checked; 
    //now you have id and checked/unchecked. use your query to save it to database 
    } 
} 
+0

非常感謝您的回覆,這是我一直在尋找的東西。動態獲取複選框而不是硬編碼嗎?是否有可能通過Html複選框循環並將它們分配給FindControl? – 2012-03-09 22:39:46

+0

只需編輯您的要求。 – Kaf 2012-03-09 22:43:46

+0

非常感謝一個想法:) – 2012-03-09 22:48:28

2

在onclick事件做這樣的事情。

foreach(Gridviewrow gvr in Gridview1.Rows) 
{ 
    if(((CheckBox)gvr.findcontrol("CheckBox1")).Checked == true) 
    { 

     //do something 
    } 
} 
+0

嘿謝謝你的回覆。我已經穹頂這樣的東西,但在複選框後面有一個數據庫ID的值如何通過控制:value ='<%#Eval(「AppID」)%>' – 2012-03-09 22:33:52

+0

還有一種動態查找控件而非硬編碼複選框名稱? – 2012-03-09 22:35:15

+0

html輸入標籤值可以通過這樣的東西來檢索。的request.form( 'checkboxID')。我可以問你爲什麼使用html標籤而不是asp.net複選框嗎? – AJP 2012-03-09 22:42:49