2012-03-09 103 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