`

用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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics