当前位置:编程学习 > C#/ASP.NET >>

asp.net中,使用datagird来显示数据,如何做到点击“全选”列头就可以使整列的单选框被选中?高手进!

asp.net中,使用datagird来显示数据,如何做到点击“全选”列头就可以使整列的单选框被选中?注意!列头是全选字样,没有checkbox。要点击这个列头就可以使这一列的checkbox被全部选中?希望能详细的解答下!列头如图!先谢了!

--------------------编程问答-------------------- html Gridview中 
<asp:TemplateField ShowHeader="False">
                                <HeaderTemplate>
                                <asp:CheckBox ID="chAll" runat="server" Text="" AutoPostBack="True" OnCheckedChanged="chAll_CheckedChanged" />全选 
                        
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="select" runat="server" />
                                    <br />
                                    <asp:HiddenField ID="hdf" runat="server" Value='<%# Bind("Id") %>' />
                                </ItemTemplate>
                            </asp:TemplateField>


cs中 
   /// <summary>
    /// 全选
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void chAll_CheckedChanged(object sender, EventArgs e)
    {
        foreach (GridViewRow gr in GridView1.Rows)
        {

            CheckBox ch = (CheckBox)gr.FindControl("select");
            if (ch.Checked == true)
            {
                ch.Checked = false;
            }
            else
            {
                ch.Checked = true;
            }
        }
    }
--------------------编程问答-------------------- 你好!我做的是列头只有“全选”儿子旁边没有checkbox的,这样能不能实现点击“全选”使所有的checkbox被选中?你的这个是因为旁边有一个checkbox,通过这个被选中来达到使所有的 checkbox被选中,而如果没有这个checkbox,只有“全选"两个字,如何实现点击”全选“来实现呢?<HeaderTemplate>
  <asp:CheckBox ID="chAll" runat="server" Text="" AutoPostBack="True" OnCheckedChanged="chAll_CheckedChanged" />全选  
    
  </HeaderTemplate>
--------------------编程问答--------------------

http://www.cnblogs.com/sijin/articles/1442674.html --------------------编程问答-------------------- 你可以把1楼上的
<asp:TemplateField ShowHeader="False">
  <HeaderTemplate>
  <asp:CheckBox ID="chAll" runat="server" Text="" AutoPostBack="True" OnCheckedChanged="chAll_CheckedChanged" />全选   
  </HeaderTemplate>

CheckBox 换成linkbutton不就可以了吗?在点击事件里面写上1楼的方法 --------------------编程问答-------------------- 4楼的,你好,你说换成linkbutton,他的onclick可以用js来实现嘛?如果可以能教下我嘛? --------------------编程问答-------------------- $("#linkButtonId").click(function(){
  $("#gridViewId").child("checkBox").each(
    function(this){
          $(this).attr("checked",true) ;
       });

});
--------------------编程问答-------------------- 用js实现的全选,你把一些id什么的都换成自己的就ok了…… --------------------编程问答-------------------- 你把全选哪里换个成button 然后产生个button事件 ,然后在这个事件里面写代码,代码同  protected void chAll_CheckedChanged(object sender, EventArgs e) 这个里面的一样 ,自己去改改 试试看啊。 --------------------编程问答-------------------- function Checked(CheckAll) {
            //获取隐藏框的id
            var hdRoom = document.getElementById('<%=HidUser.ClientID %>')
            var items = document.getElementsByTagName("input");

            //清空值
            hdRoom.value = "";
            for (var i = 0; i < items.length; i++) {
                if (items[i].type == "checkbox") {
                    items[i].checked = CheckAll.checked;
                    if (items[i].checked) {
                        hdRoom.value += items[i].value + ",";
                    }
                }
            }

            hdRoom.value = hdRoom.value.substring(3, hdRoom.value.length - 1);
        }


<asp:HiddenField ID="HidUser" runat="server" />
<asp:TemplateField HeaderText="全选">
                <HeaderTemplate>
                    <input id="CheckAll" type="checkbox" onclick="Checked(this)" />全选
                </HeaderTemplate>
                <ItemTemplate>
                    <input id="Checkbox" type="checkbox" value='<%#Eval("zid")%>' onclick="CheckedOne();" />
                </ItemTemplate>
                <ItemStyle Width="5%" />
            </asp:TemplateField>


楼主试试,我的就是这么实现的 --------------------编程问答-------------------- 6楼的我试了,但提示“ $(this).attr("checked",true) ;缺少标示符”不知道什么原因?帮忙看下,这是我写的:<script type="text/javascript" src="js/jquery-1.5.js"></script>
    <script type="text/javascript">
        $("LinkButton3").click(function(){
            $("MyDG").child("SelectAll").each(function(this){
                $(this).attr("checked",true);
            });
        });
    <div>
    <asp:DataGrid AutoGenerateColumns="False" DataKeyField= "Number" ID="MyDG"  runat="server" Width="850px" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
    <Columns>
        <asp:TemplateColumn HeaderText="全选">
        <HeaderTemplate><asp:LinkButton ID="LinkButton3" runat="server" style="text-decoration:none; color:Black"  OnClientClick="SelectAll()">全选</asp:LinkButton> </HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="SelectAll" runat="server"/>
            </ItemTemplate>
        </asp:TemplateColumn>
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,