Girdview 全选 分页照样可用

本文介绍了一种在ASP.NET中实现GridView控件全选功能的方法。通过客户端JavaScript结合服务端C#代码,作者实现了翻页后全选状态仍然保持的效果。文章提供了具体的代码示例。

这个功能我用客户js写过,但因为用的是服务端控件,gridveiw翻页后便不可用了,于是写了个客户端实现的方法。

如图

如图设置成模板列放入控件即可

以下为模板列部分代码:

  <asp:TemplateField HeaderStyle-Width="48px">
   <HeaderTemplate>
  <asp:CheckBox ID="ckAll" runat="server" AutoPostBack="True" OnCheckedChanged="ckAll_CheckedChanged" />全选
  </HeaderTemplate>
   <ItemTemplate>
  <asp:CheckBox ID="CheckBox1" runat="server" />
  </ItemTemplate>
  <HeaderStyle Width="48px" />
 </asp:TemplateField>

 

看表头选框的事件

//全选
protected void ckAll_CheckedChanged(object sender, EventArgs e)
{
      Operate.CheckAll(GridView1, sender);
}

 

这里我写了一个通用的方法CheckAll(Gridview1,sender);

有了这个方法,只需要传入需要使用全选功能的gridview控件和一个触发全选功能的控件(表头的checkbox)

 

看CheckAll()方法是怎么实现的

 public static void CheckAll(GridView gv, object sender)
 {
            CheckBox cball = sender as CheckBox;
            if (cball != null)
            {
                for (int i = 0; i < gv.Rows.Count; i++)
                {
                    if (gv.Rows[i].RowType == DataControlRowType.DataRow)
                    {
                        CheckBox cb = gv.Rows[i].FindControl("CheckBox1") as CheckBox;
                        if (cb != null)
                            cb.Checked = cball.Checked;
                    }
                }
            }
        }      

 

这样写是不是方便多了,如果有什么问题或者是觉得还可以请留言哦。

转载于:https://www.cnblogs.com/binw/archive/2011/11/10/2244689.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值