asp.net gridview中添加checkbox列,用于全部选中记录或取消全选

方法一:使用javascript代码控制

                         前台代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">   
    <Columns>
        <asp:TemplateField >
           <HeaderTemplate>
                <asp:CheckBox ID="chkHeader" runat="server" οnclick="doSelect(this,'GridView1');"/>
            </HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="chkSelect" runat="server" />
            </ItemTemplate>
            <ItemStyle HorizontalAlign="Center" />
        </asp:TemplateField>
        <asp:TemplateField HeaderText="No" > 
            <ItemTemplate><%#Container.DataItemIndex + 1%>
           </ItemTemplate> 
           <ItemStyle HorizontalAlign="Center"  />
        </asp:TemplateField>        
    </Columns>
    <HeaderStyle CssClass="dvHeader"  />
</asp:GridView>
                         后台代码:
    <script language="javascript" type="text/javascript"> 
         function doSelect(obj,src){   
               //var dom=document.all;   
               //var el=event.srcElement;   
                 var dom = document.getElementById(src).getElementsByTagName("INPUT");  
         var el = obj;
               if(el.id.indexOf("chkHeader")>=0&&el.tagName=="INPUT"&&el.type.toLowerCase()=="checkbox")
               {   
                  var   ischecked=false;   
                  if(el.checked)   
                  ischecked=true;   
                  for(i=0;i<dom.length;i++)
                  {   
                    if (dom[i].type ==undefined) continue ;
                        if(dom[i].id.indexOf("chkSelect")>=0&&dom[i].tagName=="INPUT"&&dom[i].type.toLowerCase()=="checkbox")   
                        dom[i].checked=ischecked;
                  }   
               }
            }
    </script> 
              方法二:在后台编写代码并绑定事件

                         前台代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">   
     <Columns>
         <asp:TemplateField >
            <HeaderTemplate>
                 <asp:CheckBox ID="chkHeader" runat="server" AutoPostBack ="true" OnCheckedChanged ="chkHeader_CheckedChanged"/>
             </HeaderTemplate>
             <ItemTemplate>
                 <asp:CheckBox ID="chkSelect" runat="server" />
             </ItemTemplate>
             <ItemStyle HorizontalAlign="Center" />
         </asp:TemplateField>
         <asp:TemplateField HeaderText="No" > 
             <ItemTemplate><%#Container.DataItemIndex + 1%>
            </ItemTemplate> 
            <ItemStyle HorizontalAlign="Center"  />
         </asp:TemplateField>         
     </Columns>
     <HeaderStyle CssClass="dvHeader"  />
</asp:GridView>
                             后台代码:
    ''' <summary>
    ''' 全选/反选
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub chkHeader_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        For i As Integer = 0 To Me.GridView1.Rows.Count - 1
            If CType(Me.GridView1.Rows(i).Cells(0).FindControl("chkSelect"), CheckBox).Enabled Then
                CType(Me.GridView1.Rows(i).Cells(0).FindControl("chkSelect"), CheckBox).Checked = CType(Me.GridView1.HeaderRow.FindControl("chkHeader"), CheckBox).Checked
            End If
        Next
    End Sub
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值