<%@ page contentType="text/html; charset=gb2312"%> javascript实现datagrid客户端checkbox列的全选,反选
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
javascript实现datagrid客户端checkbox列的全选,反选
     发布者: 发布时间:2007-02-13
 

最简格式:这是一个偷巧的方法,但不通用。前提是这个页面只有一个datagrid,且只有datagrid中有checkbox;这个就比较方便。主要思路就是搜索出整个页面的checkbox,将它们全部选中或反选。
// 全选
function allCheck()
{
for (var i=0;i<Form1.elements.length;i++)
{
var e=Form1.elements[i];
if (e.type=='checkbox')
e.checked=true;
}

}
//反选
function revCheck()
{
for (var i=0;i<Form1.elements.length;i++)
{
var e=Form1.elements[i];
if (e.type=='checkbox')
e.checked=!e.checked;
}
}


通用简单格式
因为asp.net页面中生成datagrid中的checkbox,他的ID是要改变的,所以我们寻找它们的规律,就可以准确的找到这个控件,从而进行全选和反选及选中的操作,
 参数说明:
prefix:前缀;s:选择框ID;chk:选择框的ID;


function getObj( objID )
{
 return document.getElementById( objID );
}

// 全选
function _SelectAll( prefix,s,chk )
{
 var oArr = _GetColl( prefix,s,chk );
 for( var o in oArr )
 {
  oArr[o].checked = true;
 }
}
// 反选
function _RevSelect( prefix,s,chk )
{
 var oArr = _GetColl( prefix,s,chk );
 for( var o in oArr )
 {
  oArr[o].checked = !oArr[o].checked;
 }
}

// 获值
function _GetColl( prefix,s,chk )
{
 var i = s;
 var oArr = new Array();
 while( true)
 {
  var o = getObj( prefix + '__ctl' + i + '_' + chk);
  if( o != null )
  {
   oArr.push( o );
  }
  else
  {
   break;
  }
  i++;
 }
 
 return oArr;
}
// 检查是否选中
function _CheckSelect( prefix,s,chk )
{
 var oArr = _GetColl( prefix,s,chk );
 for( var o in oArr )
 {
  if( oArr[o].checked)
  {
   return true;
  }
 }
 return false;
 
}

推荐通用详细格式:http://www.cnblogs.com/ghd258/archive/2005/11/07/270449.html#Post
/* 分页
  2    参数说明:
  3    prefix:前缀;chkAll:全选框;chkSingle:单选框ID
  4   
  5    使用方法:
  6    if(e.Item.ItemType == ListItemType.Header)
  7    {
  8        ((CheckBox)e.Item.Cells[1].FindControl("chkAll")).Attributes.Add("onclick","CheckAll('" + this.dg.ClientID.ToString() + "','chkAll','chkSingle');");
  9    }
 10*/
 11function CheckAll(prefix,chkAll,chkSingle)
 12{
 13    var indexChkAll;
 14    if(prefix.length != 0)
 15    {
 16        indexChkAll        = prefix + "__ctl2_" + chkAll;
 17    }
 18    else
 19    {
 20        indexChkAll        = chkAll;
 21    }
 22    var objChkAll = document.getElementById(indexChkAll);
 23    var tempObj;
 24    for(var i=0;i<document.forms[0].elements.length;i++)
 25    {   
 26        tempObj = document.forms[0].elements[i];
 27        if(tempObj.type == "checkbox" && tempObj.id != indexChkAll && tempObj.id.indexOf(chkSingle) != -1)
 28        {
 29            tempObj.checked = objChkAll.checked;
 30        }
 31    }
 32}
 33/**//* 分页
 34    参数说明:
 35    prefix:前缀;chkAll:全选框;chkSingle:单选框ID
 36   
 37    使用方法:
 38    if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
 39    {
 40        ((CheckBox)e.Item.Cells[1].FindControl("chkSingle")).Attributes.Add("onclick","CheckSingle('" + this.dg.ClientID.ToString() + "','chkAll','chkSingle');");
 41    }
 42*/
 43function CheckSingle(prefix,chkAll,chkSingle)
 44{
 45    var indexChkAll;
 46    if(prefix.length != 0)
 47    {
 48        indexChkAll        = prefix + "__ctl2_" + chkAll;
 49    }
 50    else
 51    {
 52        indexChkAll        = chkAll;
 53    }
 54    var objChkAll = document.getElementById(indexChkAll);
 55    var tempObj;
 56    var allCount    = 0;
 57    var checkCount    = 0;
 58    for(var i=0;i<document.forms[0].elements.length;i++)
 59    {   
 60        tempObj = document.forms[0].elements[i];
 61        if(tempObj.type == "checkbox" && tempObj.id != indexChkAll && tempObj.id.indexOf(chkSingle) != -1)
 62        {
 63            if(tempObj.checked)
 64            {
 65                checkCount++;
 66            }
 67            else
 68            {
 69                objChkAll.checked = false;
 70                //break;
 71            }
 72            allCount++;
 73        }
 74    }
 75    if(checkCount != allCount)
 76    {
 77        objChkAll.checked = false;
 78    }
 79    else
 80    {
 81        if(allCount != 0)
 82        {
 83            objChkAll.checked = true;
 84        }
 85    }
 86}
 87/**//*
 88    参数说明:
 89    prefix:前缀;chkAll:全选框;chkSingle:单选框ID
 90    type:1【全选】,2【反选】,3【取消】
 91   
 92    使用方法:
 93    this.btnSelectAll.Attributes.Add("onClick","CheckType('" + this.dg.ClientID.ToString() + "','chkAll','chkSingle',1);");
 94    this.btnUnSelectAll.Attributes.Add("onClick","CheckType('" + this.dg.ClientID.ToString() + "','chkAll','chkSingle',2);");
 95    this.btnCancelSelect.Attributes.Add("onClick","CheckType('" + this.dg.ClientID.ToString() + "','chkAll','chkSingle',3);");
 96*/
 97function CheckType(prefix,chkAll,chkSingle,type)
 98{
 99    var indexChkAll;
100    if(prefix.length != 0)
101    {
102        indexChkAll        = prefix + "__ctl2_" + chkAll;
103    }
104    else
105    {
106        indexChkAll        = chkAll;
107    }
108    var objChkAll = document.getElementById(indexChkAll);
109    var tempObj;
110    var allCount    = 0;
111    var checkCount    = 0;
112    for(var i=0;i<document.forms[0].elements.length;i++)
113    {   
114        tempObj = document.forms[0].elements[i];
115        if(tempObj.type == "checkbox" && tempObj.id != indexChkAll && tempObj.id.indexOf(chkSingle) != -1)
116        {
117            switch(type)
118            {
119                case 1:
120                    tempObj.checked = true;
121                    break;
122                case 2:
123                    tempObj.checked = !tempObj.checked;
124                    break;
125                case 3:
126                    tempObj.checked = false;
127                    break;
128            }
129            if(tempObj.checked)
130            {
131                checkCount++;
132            }
133            allCount++;
134        }
135    }
136    if(checkCount != allCount)
137    {
138        objChkAll.checked = false;
139    }
140    else
141    {
142        if(allCount != 0)
143        {
144            objChkAll.checked = true;
145        }
146    }
147    window.event.returnValue = false;
148    return false;
149}
150
151/**//*
152    参数说明:
153    prefix:前缀;chkAll:全选框;chkSingle:单选框ID
154
155    使用方法:
156    this.btnDelete.Attributes.Add("onClick","SubmitCheckBox('" + this.dg.ClientID.ToString() + "','chkAll','chkSingle');");
157*/
158function SubmitCheckBox(prefix,chkAll,chkSingle,msg)
159{
160    var indexChkAll;
161    if(prefix.length != 0)
162    {
163        indexChkAll        = prefix + "__ctl2_" + chkAll;
164    }
165    else
166    {
167        indexChkAll        = chkAll;
168    }
169    var objChkAll = document.getElementById(indexChkAll);
170   
171    var tempObj;
172    var allCount    = 0;
173    var checkCount    = 0;
174    for(var i=0;i<document.forms[0].elements.length;i++)
175    {   
176        tempObj = document.forms[0].elements[i];
177        if(tempObj.type == "checkbox" && tempObj.id != indexChkAll && tempObj.id.indexOf(chkSingle) != -1)
178        {
179            if(tempObj.checked)
180            {
181                checkCount++;
182            }
183            allCount++;
184        }
185    }
186    if(allCount == 0) //没有数据
187    {
188        window.alert("当前没有" + msg + "可供删除");
189        window.event.returnValue = false;
190        return false;
191    }
192    else
193    {
194        if(checkCount == 0)
195        {
196            window.alert("没有选中要删除的" + msg + "");
197            window.event.returnValue = false;
198            return false;
199        }
200        else
201        {
202            //if(window.confirm("确定要删除当前选中的【" + checkCount.toString() + "】项吗?") == false)
203            if(window.confirm("确定要删除当前选中的" + msg + "吗?") == false)
204            {
205                window.event.returnValue = false;
206                return false;
207            }
208        }
209    }
210}


(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
如何用javascript判断录入的日期是否合法
js用于树型结构级联选择
用JavaScript实现字符串切分功能
网页javascript精华代码集
JS+CSS打造可拖动的聊天窗口层
Js之软键盘实现(源码)
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(4459)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(5546)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(910)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(4844)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(5695)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(5163)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(6225)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号