GridView中CheckBox、CheckBoxField取值的方法集

直接通过GridView的cells取CheckBox的值都是空串,在网上查询之后,有三种解决方案,将其收藏。

一、CheckBoxField取值的方法:

前台代码:

 

 
  1. <asp:GridView ID="GridView1" runat="server" Width="418px">  
  2.      <Columns>  
  3.          <asp:CheckBoxField DataField="是否有效" HeaderText="有效性" />  
  4.      </Columns>  
  5. </asp:GridView>  

 

 后台代码:

 

 
  1. CheckBox cb = (CheckBox)GridView_Users.SelectedRow.Cells[6].Controls[0];  
  2. if(cb!=null)  CheckBox_Available.Checked = cb.Checked;  

 

 

二、CheckBox取值:

方法一:(C#)

操作:

 

  1. string PKname="";  
  2. foreach (GridViewRow GR in this.GridView1.Rows)  
  3. {  
  4.     CheckBox CB = (CheckBox)GR.FindControl("CheckBox1");  
  5.     if (CB.Checked)  
  6.     {  
  7.         PKname += this.GridView1.DataKeys[GR.RowIndex].Value.ToString()+",";  
  8.     }  
  9. }  

 

补充:前台<asp:CheckBox ID="CheckBox1" runat="server" Text=' <%#Eval("列名") %>'/>

实例:前台代码

 

  1. <Columns>   
  2.    <asp:TemplateField HeaderText="选择">   
  3.       <HeaderStyle HorizontalAlign="Center" Height="25px" Width="45px" />   
  4.       <ItemTemplate>   
  5.          <asp:CheckBox ID="ckb" runat="server" />   
  6.       </ItemTemplate>   
  7.    </asp:TemplateField>   
  8.    <asp:BoundField DataField="sid" HeaderText="编号" />   
  9.    <asp:BoundField DataField="cname" HeaderText="姓名" />      
  10. </Columns>   

 

实例:后台代码

 

  1. foreach (GridViewRow gvr in this.GridView1.Rows)   
  2. {   
  3.      Control ctl = gvr.FindControl("ckb");   
  4.      CheckBox ck = (CheckBox)ctl;   
  5.      if (ck.Checked)   
  6.      {   
  7.          TableCellCollection cell = gvr.Cells;   
  8.          string wid += cell[1].Text+",";   
  9.      }   
  10. }   

 

 

方法二:(VB)

GridView->设置DataKeyNames

 

  1. Dim gvr as GridViewRow   
  2. Dim KeyName as string'要的关键字,实际就是数据表的主键.需要事先在GridView1的DataKeyNames中设置.   
  3. Dim i as IntegerFor each gvr in GridView1.Rows   
  4. IF Ctype(gvr.FindControl("CheckBox1"),CheckBox).Checked=True Then   
  5. i=gvr.Rowindex;'GridView行索引   
  6. KeyName=GridView1.DataKeys(i).value;   
  7.   ...根据KeyName想做什么做什么吧.   
  8. End If   
  9. Next  

 

转载于:https://www.cnblogs.com/feilong3540717/archive/2011/12/27/2304073.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在ASP.NET使用GridView控件的Checkbox列可以让用户方便地选择多个行,以进行批量操作。以下是使用GridView控件的Checkbox列的一些总结: 1. 添加Checkbox列 在GridView控件的模板列添加Checkbox列,可以使用以下代码: ``` <asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" /> </ItemTemplate> </asp:TemplateField> ... </Columns> ... </asp:GridView> ``` 2. 获取选行 在处理GridView控件的Checkbox列时,需要遍历GridView的所有行,检查每个Checkbox是否被选。可以使用以下代码来获取选的行: ``` foreach (GridViewRow row in GridView1.Rows) { CheckBox chk = (CheckBox)row.FindControl("CheckBox1"); if (chk.Checked) { // 选的行 } } ``` 3. 设置全选 为了方便用户选择所有行,可以在页面上添加一个“全选”复选框,并使用JavaScript代码来设置GridView所有Checkbox的选状态。可以使用以下代码来设置全选: ``` <script type="text/javascript"> function selectAll() { var chkAll = document.getElementById('<%= chkAll.ClientID %>'); var grid = document.getElementById('<%= GridView1.ClientID %>'); for (var i = 0; i < grid.rows.length; i++) { var chk = grid.rows[i].cells[0].getElementsByTagName("input")[0]; if (chk.type == "checkbox") { chk.checked = chkAll.checked; } } } </script> <asp:CheckBox ID="chkAll" runat="server" onclick="selectAll();" /> ``` 4. 处理PostBack 在处理PostBack时,需要检查GridView的所有行,并处理选的行。可以使用以下代码来处理PostBack: ``` protected void Button1_Click(object sender, EventArgs e) { foreach (GridViewRow row in GridView1.Rows) { CheckBox chk = (CheckBox)row.FindControl("CheckBox1"); if (chk.Checked) { // 选的行 } } } ``` 希望这些总结能够对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值