GridView--按钮辅助全选、全不选

 function CheckAll()
    {               
                var tdid=document.getElementById("<%=gvAppendList.ClientID%>");
                var tdRows=tdid.rows.length;
               
                if(tdid.rows[tdRows-1].cells.length==1)
                {
                    tdRows = tdRows - 1;
                }
                var i;
                for (i=1;i<tdRows;i++ )
                {
                 
                   tdid.rows[i].cells[0].getElementsByTagName("input")[0].checked=true;                   
                }
        return false;
    }

 function unCheckAll()
    {        
                var tdid=document.getElementById("<%=gvAppendList.ClientID%>");
                var tdRows=tdid.rows.length;
         
                if(tdid.rows[tdRows-1].cells.length==1)
                {
                    tdRows = tdRows - 1;
                }
                var i;
                for (i=1;i<tdRows;i++ )
                {
                 
                   tdid.rows[i].cells[0].getElementsByTagName("input")[0].checked=false;
                  
                }                   
        return false;
    }

<asp:Button ID="btnCheckAll" runat="server" CssClass="buttonNormal" OnClientClick="return CheckAll();"    Text="全选择"  />

<asp:Button ID="btnUnCheckAll" runat="server" CssClass="buttonNormal" OnClientClick="return unCheckAll();"  Text="全解除"  />

 

http://topic.csdn.net/u/20080311/11/1e42e538-4f28-4355-a545-bbd4ebaec244.html

http://blog.csdn.net/ykhykh/article/details/1445814

http://blog.csdn.net/yl_99/article/details/6524826

 

添加一个模板列TemplateField.然后,切换到源代码进行后续的编辑.
在GridView控件中刚刚生成的<asp:TemplateField> </asp:TemplateField>标签对之间,
添加一个<HeaderTemplate></HeaderTemplate>标签对和
<ItemTemplate></ItemTemplate>标签对.
我们利用<HeaderTemplate>在列头处显示一个checkbox,
用这个checkbox来触发全选和全不选的事件.而在<ItemTemplate>中添加的checkbox则会显示在每一条数据行中.
下面来看源代码:
<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:TemplateField>
           <HeaderTemplate>
                <asp:CheckBox runat="server" ID="cbHead" OnCheckedChanged="SelectAll" AutoPostBack="true">
                </asp:CheckBox>
           </HeaderTemplate>
           <ItemTemplate>
                <asp:CheckBox runat="server" ID="cbItem"></asp:CheckBox>
           </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

     上面的代码相信大家肯定看明白了,那如何来实现全选和全不选呢?这就需要编辑SelectAll方法,
因为当我们点选了列头的checkbox就会触发OnCheckedChanged事件,而我们让该事件调用SelectAll方法,
利用该方法来实现效果.要添加该事件,首先要在源代码中添加OnCheckedChanged="SelectAll" AutoPostBack="true"
语句,因为我们需要在点选该checkbox后,就让其它数据行的checkbox也选中,也就是说必须告诉服务器"我已经选中了",
只有当服务器接收到该消息,才会执行SelectAll方法.而AutoPostBack属性就是用于设置回发的,如果设置为true,
表是点选该按钮后,就会将消息传给服务器端,否则就不会将消息传给服务器.
SelectAll方法如下:

protected void SelectAll(object sender, EventArgs e)
{
   bool isChecked = ((CheckBox)(GridView1.HeaderRow.Cells[0].FindControl("cbHead"))).Checked;
    foreach (GridViewRow gvRow in GridView1.Rows)
    {
        ((CheckBox)(gvRow.Cells[0].FindControl("cbItem"))).Checked = isChecked;
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值