请问,如何实现gridview的某一列的checkbox控件的全选和全不选,点头模板放一个checkbox控件,点全选时就全部选,再点时就全不选,这个问题困扰了我好久呀。

解决方案 »

  1.   

    我现在的问题是,关键的就在于怎么找到头模板的那个checkbox控件,我才能判断那个控件是有没有被选上,被勾选上就全选,没有被勾选上就全不选,
      

  2.   


    <input type="checkbox" name="checkbox2" id="checkbox2" onclick="checkall(this)" />
    <input type="checkbox" name="checkbox3" id="checkbox3" />
    <input type="checkbox" name="checkbox4" id="checkbox4" />
    <input type="checkbox" name="checkbox5" id="checkbox5" />
    <input type="checkbox" name="checkbox6" id="checkbox6" />
    <input type="checkbox" name="checkbox7" id="checkbox7" />
    <input type="checkbox" name="checkbox8" id="checkbox8" />
    <input type="checkbox" name="checkbox9" id="checkbox9" />
    <input type="checkbox" name="checkbox10" id="checkbox10" />
    <input type="checkbox" name="checkbox" id="checkbox" />function checkall(obj){
        var cks = document.getElementsByTagName("input");
    alert(cks.length)
        for(var i=0;i<cks.length; i++){
          if(cks[i].type = "checkbox"){
            cks[i].checked = obj.checked;
          }
        }
    }
      

  3.   


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>amandag</title>
        <script language="javascript" type="text/javascript">
            function chooseAll(sender)
        {
                var inputs = document.all.tags("INPUT");
                // 遍历页面上所有的 input 
                for (var i = 0; i < inputs.length; i++) 
                {       
                        //如果此input元素的类型为checkbox,并且其id中包含chkSelect
        if (inputs[i].type == "checkbox" && inputs[i].id.indexOf("chkSelect") >= 0)
        {
            //设置此复选框的checked与全选复选框相同
        inputs[i].checked = document.getElementById(sender).checked;
        } 
        }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="grvUsers" runat="server" OnRowDataBound="grvUsers_RowDataBound"...>
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:CheckBox ID="chkSelect" runat="server" />
                        </ItemTemplate>
                        <HeaderTemplate>
                            <asp:CheckBox ID="chkAll" runat="server"/>
                        </HeaderTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
        protected void grvUsers_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                CheckBox chkAll = (CheckBox)e.Row.FindControl("chkAll");
                chkAll.Attributes.Add("onclick", "chooseAll('" + chkAll.ClientID + "')");
            }
        }