您的位置:首页 > 其它

GridView中实现CheckBox的全选

2008-12-19 10:41 447 查看

GridView中实现CheckBox的全选

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


<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>


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


                </HeaderTemplate>


                <ItemTemplate>


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


                </ItemTemplate>


            </asp:TemplateField>


        </Columns>


    </asp:GridView>后台cs代码:


 protected void chkAll_CheckedChanged(object sender, EventArgs e)


    {


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


        {


            ((CheckBox)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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: