(ajax)GridView中实现CheckBox的全选

1 篇文章 0 订阅
1 篇文章 0 订阅

一下代码由cnblogs的一位网友的代码修改而成,主要加入了ajax

用服务器端的方法: 在页面上放一个gridview控件,配置好数据源,编辑列,添加一个模版列,再编辑模版,放入一个checkbox控件。代码如下:

<body>

    <form id="form1" runat="server">

        <asp:ScriptManager ID="ScriptManager1" runat="server"/>

    <div>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">

            <ContentTemplate>

                <asp:GridView ID="GridView1" runat="server">

                    <Columns>

                        <asp:TemplateField>

                            <HeaderTemplate>

                                <asp:CheckBox ID="chkAll" runat="server" OnCheckedChanged="chkAll_CheckedChanged" AutoPostBack="True" />

                            </HeaderTemplate>

                            <ItemTemplate>

                                <asp:CheckBox ID="chkItem" runat="server" />

                            </ItemTemplate>

                        </asp:TemplateField>

                    </Columns>

                </asp:GridView>

            </ContentTemplate>

        </asp:UpdatePanel>

        

    </div>

    </form>

</body>
后台cs代码:
using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;



public partial class Default3 : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            string conStr = "server=.;database=Northwind;Uid=sa;pwd=";

            string sql = "select * from Region";

            SqlConnection con = new SqlConnection(conStr);

            SqlDataAdapter sda = new SqlDataAdapter(sql, con);

            DataSet ds = new DataSet();

            sda.Fill(ds);

            this.GridView1.DataSource = ds;

            this.GridView1.DataBind();

            sda.Dispose();

            con.Close();

        }

    }

    protected void chkAll_CheckedChanged(object sender, EventArgs e)

    {

        for (int i = 0; i < this.GridView1.Rows.Count; i++)

        {

            ((CheckBox)this.GridView1.Rows[i].FindControl("chkItem")).Checked = ((CheckBox)this.GridView1.HeaderRow.FindControl("chkAll")).Checked;

        }

    }

}
用脚本实现:(未经修改,直接转过来的)

   
   
< asp:GridView  ID ="GridView1"  runat ="server"  AllowPaging ="True"  AutoGenerateColumns ="False"         DataKeyNames ="AreaID"  DataSourceID ="SqlDataSource1" >          < Columns >              < asp:BoundField  DataField ="AreaID"  HeaderText ="AreaID"  ReadOnly ="True"  SortExpression ="AreaID"   />              < asp:BoundField  DataField ="CityID"  HeaderText ="CityID"  SortExpression ="CityID"   />              < asp:TemplateField >                  < HeaderTemplate >                      < input  id ="chkAll"   onclick ="SelectAll(this)" ; type =checkbox >                  </ HeaderTemplate >                  < ItemTemplate >                      < input  id ="chkItem"  type =checkbox >                                    </ ItemTemplate >              </ asp:TemplateField >          </ Columns >      </ asp:GridView >
再客户端写javascript
< script type = " text/javascript " >         function  SelectAll(chkbox)             {               var box=chkbox;               state=theBox.checked;                   elem=box.form.elements;               for(i=0;i<elem.length;i++)               if(elem[i].type=="checkbox" && elem[i].id!=box.id)                {                     if(elem[i].checked!=state)                     {                        elem[i].click();                     }                }           }    </ script >
 
谢谢这位网友
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值