• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    gridview checkbox从服务器端和客户端两个方面实现全选和反选
    GridView中的checkbox的全选和反选在很多的地方都是要求实现的,所以下面就从服务器端和客户端两个方面实现了checkbox的选择。
    1.服务器端
    html代码如下:
    复制代码 代码如下:

    asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataKeyNames="ID" DataSourceID="SqlDataSource1">
    Columns>
    asp:TemplateField>
    HeaderTemplate>
    asp:CheckBox ID="CheckAll" runat="server" OnCheckedChanged="CheckAll_CheckedChanged" AutoPostBack="true" />
    /HeaderTemplate>
    ItemTemplate>
    asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged" />
    /ItemTemplate>
    /asp:TemplateField>
    asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
    ReadOnly="True" SortExpression="ID" />
    asp:BoundField DataField="num" HeaderText="num" SortExpression="num" />
    /Columns>
    /asp:GridView>
    其中关于数据的获取不是重点,所以就选择了使用sqldatasource控件来实现数据的获取。 GridView中使用了BoundField绑定了ID,num这两个数据表的字段。在上面的HTML代码中,使用了模板列
    asp:TemplateField>
    HeaderTemplate>
    asp:CheckBox ID="CheckAll" runat="server" OnCheckedChanged="CheckAll_CheckedChanged" AutoPostBack="true" />
    /HeaderTemplate>
    ItemTemplate>
    asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged" />
    /ItemTemplate>
    /asp:TemplateField>

    header部分是全选的checkbox,item的部分是单个的checkbox部分。 (请注意AutoPostBack要设置为true,要不然无法触动服务器端的代码)
    具体的后台的代码
    复制代码 代码如下:

    protected void CheckAll_CheckedChanged(object sender,EventArgs e)
    {
    CheckBox ck = sender as CheckBox;
    if (ck != null)
    {
    System.Web.UI.WebControls.GridView g = ck.NamingContainer.NamingContainer as System.Web.UI.WebControls.GridView;
    for (Int32 i = 0; i g.Rows.Count; i++)
    {
    (g.Rows[i].FindControl("CheckBox1") as CheckBox).Checked = ck.Checked;
    }
    }
    }
    protected void CheckBox1_CheckedChanged(object sender,EventArgs e)
    {
    var count = 0;
    CheckBox ck = sender as CheckBox;
    if (ck != null)
    {
    System.Web.UI.WebControls.GridView g = ck.NamingContainer.NamingContainer as System.Web.UI.WebControls.GridView;
    for (Int32 i = 0; i g.Rows.Count; i++)
    {
    if ((g.Rows[i].FindControl("CheckBox1") as CheckBox).Checked)
    {
    count++;
    }
    }
    (g.HeaderRow.FindControl("CheckAll") as CheckBox).Checked =count==g.Rows.Count;
    }
    }

    运行页面以后,可以看到点击全选的checkbox,可以选择全部。取消了全选的checkbox,那所以的checkbox也取消选中。如果单个的checkbox全选中一个,那全选的checkbox也选中。如果有一个单个的checkbox没有选中,那全选的checkbox也不选中。
    下面来说说客户端的实现:
    html代码部分,请去除掉两个checkbox的OnCheckedChanged和AutoPostBack。其他的不变。
    复制代码 代码如下:

    script type="text/javascript">
    $(function() {
    $("#GridView1 :checkbox").eq(0).click(function() {
    if ($(this).is(":checked")) {
    $(this).parent().parent().nextAll().find(":checkbox").attr("checked", "checked");
    }
    else {
    $(this).parent().parent().nextAll().find(":checkbox").removeAttr("checked");
    }
    });
    $("#GridView1 :checkbox").not($("#GridView1 :checkbox:first")).click(function() {
    if ($(this).is(":checked")) {
    if ($("#GridView1 :checked").length == $("#GridView1 :checkbox").length - 1) {
    $("#GridView1 :checkbox").eq(0).attr("checked", "checked");
    }
    }
    else {
    $("#GridView1 :checkbox").eq(0).removeAttr("checked");
    }
    });
    });
    /script>
    您可能感兴趣的文章:
    • GridView中加上CheckBox 的全选功能的代码
    • Gridview使用CheckBox全选与单选采用js实现同时高亮显示选择行
    • ASP.NET Gridview与checkbox全选、全不选实现代码
    • asp.net GridView控件中模板列CheckBox全选、反选、取消
    • asp.net gridview中用checkbox全选的几种实现的区别
    • GridView中checkbox"全选/取消"完美兼容IE和Firefox
    上一篇:通过RadioButton对DataList控件进行单选实例说明
    下一篇:获取DataList控件的主键和索引实用图解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    gridview checkbox从服务器端和客户端两个方面实现全选和反选 gridview,checkbox,从,服务器,