Javascript在客戶端實現遍歷datagrid,DataList控件,像MSN中的全選

今天在做項目的時候,想在 DataList實現全選
在網上查了下:
看下面的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了

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 用一個Check或者按鈕全選頁面上的CheckBox </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="活靶子">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<form name=frm>
<input type=checkbox value="第一個">
</br>
<input type=checkbox value="第二個">
</br>
<input type=checkbox value="第三個">
</br>
<input type=checkbox value="第四個">
</br>
<input type=checkbox value="第五個">
</br>
<input type="checkbox" name="allbox" value="Check All" onClick="CheckAll();"><font color="#6666FF">
<a href="javascript:CheckAll();" onClick="allbox.checked=!allbox.checked" style="font-size:12px">選中所有CheckBox</a>
</form>
<script language="JavaScript">
<!--
function CheckAll()
  
{
    
for (var i=0;i<document.frm.elements.length;i++)
    
{
      var e 
= document.frm.elements[i];
      
if (e.name != 'allbox' && e.type.toUpperCase() == "CHECKBOX")
        e.
checked = document.frm.allbox.checked;
    }

  }

//-->
</script>
</BODY>
</HTML>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章