在DataGrid页眉上添加全选的CheckBox控件

 

很简单的方法,就是用js实现:

页面:

  <asp:datagrid id="dgUserList" runat="server" Width="640px" BorderColor="White" PagerStyle-HorizontalAlign="Right"
                 AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False">
                 <AlternatingItemStyle BackColor="#F5F5F5"></AlternatingItemStyle>
                 <ItemStyle HorizontalAlign="Center"></ItemStyle>
                 <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#4A95FD" Height="8"></HeaderStyle>
                 <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
                 <Columns>
                  <asp:TemplateColumn>
                   <HeaderTemplate>
                    <asp:CheckBox id="chkAll" runat="server"></asp:CheckBox>
                   </HeaderTemplate>
                   <ItemTemplate>
                    <asp:CheckBox id="chkItem" runat="server"></asp:CheckBox>
                   </ItemTemplate>
                  </asp:TemplateColumn>
                  <asp:BoundColumn DataField="id" HeaderText="序号"></asp:BoundColumn>
                  <asp:BoundColumn DataField="username" HeaderText="用户名"></asp:BoundColumn>
                  <asp:BoundColumn DataField="workno" HeaderText="工号"></asp:BoundColumn>
                  <asp:BoundColumn DataField="dept" HeaderText="部门"></asp:BoundColumn>
                 </Columns>
                 <PagerStyle Visible="False" HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
                </asp:datagrid>

 

 

后台代码:

 private void dgUserList_PreRender(object sender, System.EventArgs e)
  {
   foreach (DataGridItem item in dgUserList.Controls[0].Controls)
   {
    if (item.ItemType == ListItemType.Header)
    {
     CheckBox chkAll=(CheckBox)item.FindControl("chkAll");
     System.Text.StringBuilder strScript = new System.Text.StringBuilder("<script language='javascript'> /n");
     strScript.Append("    function checkStatus() { /n");
     strScript.Append("        var bAll = true; /n");
     strScript.Append("        bAll = document.all('" + chkAll.ClientID + "').checked; /n");

     for(int i=0; i<dgUserList.Items.Count ; i++)
     {
      strScript.Append("        document.all('" + dgUserList.Items[i].Cells[0].FindControl("chkItem").ClientID + "').checked = bAll; /n");
     }
     strScript.Append("    } /n");
     strScript.Append("</script> /n");

     if(!Page.IsClientScriptBlockRegistered("checkStatus"))
      Page.RegisterClientScriptBlock("checkStatus",strScript.ToString());

     chkAll.Attributes.Add("onclick","checkStatus()");
     return;
    }
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值