用Javascript在客户端实现遍历datagrid,DataList控件,像MSN中的全选

刚刚看了..NET中遍历DataList控件,像MSN中的全选
的文章,突然想起我也做过类似功能,就是把控件里的行循环一次,这样一来会产生一个PostBack,要服务期端进行处理,我想这样一来好象对资源进行了浪费。

看下面的datagrid代码

< asp:TemplateColumn  HeaderText ="删除文章" >
                                    
< HeaderTemplate >
                                        删除文章
                                        
< input  type ="checkbox"  id ="checkDel"   title ="全选/全取消删除文章"  onclick ="CheckDelBox(this)"   />< font   color =#ff0000  size =1 > 全选/全取消 </ font >
                                    
</ HeaderTemplate >
                                    
< ItemTemplate >
                                        
< asp:CheckBox  id ="deleteCheckbox"  runat ="server"  AutoPostBack ="False" ></ asp:CheckBox >
                                    
</ ItemTemplate >
                                
</ asp:TemplateColumn >


我在选择id="checkDel" 的选择框时,要对模版中的deleteCheckbox进行全选和全取消
我调用了js


function  CheckDelBox(box)    
{
        
for  ( var  i = 0 ;i < document.Form1.elements.length;i ++ )
    {
        
var  e  =  document.Form1.elements[i];
        
if  ( (e.type == 'checkbox') )
        {
            
                
var  o = e.name.lastIndexOf('deleteCheckbox');
                
                
if (o !=- 1 )
                {
                    e.checked 
=  box.checked;
                }
        
        }
    }
}


注意这段代码
var o=e.name.lastIndexOf('deleteCheckbox');

在某些情况下,id在客户端的呈现不是在aspx中你指定的id了,而是控件.ClientID,比如在DataGrid中放置的一些服务器端控件,查看一下源代码可以看到id是类似DataGrid1__ctl5_Hyperlink1而不是你指定的id了
 
所以我得做相应判断

大家还可以参考
http://www.cnblogs.com/lovecherry/archive/2005/03/25/125516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值