海东的技术资料
博客园
::
首页
:: ::
联系
::
订阅
::
管理
::
205 随笔 :: 22 文章 :: 722 评论 :: 68 引用
javascript实现datagrid客户端checkbox列的全选,反选
1
/**/
/*
分页
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
*/
11
function
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
*/
43
function
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
*/
97
function
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
*/
158
function
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
}
posted on 2005-11-07 09:35
高海东
阅读(1942)
评论(3)
编辑
收藏
网摘
所属分类:
功能函数
评论
#1楼
2006-10-11 09:20
yicong [未注册用户]
看不懂,可以说是JAVASCRIPT的高级应用了吗?
回复
引用
#2楼
2006-12-18 19:38
仰天一笑
这个我先前也这样写,后来我在有些用了一个偷巧的方法,但不通用。前提是这个页面只有一个datagrid,且只有datagrid中有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;
}
}
回复
引用
查看
#3楼
2007-09-28 21:00
sssdfsasaf [未注册用户]
??
回复
引用
刷新评论列表
切换模板
发表评论
姓名
[登录]
[注册]
主页
Email
(仅博主可见)
验证码
*
看不清,换一张
内容(请不要发表任何与政治相关的内容)
今天你闪了吗?
《C# 3.0设计模式》65折特惠
Remember Me?
登录
使用高级评论
新用户注册
返回页首
[使用Ctrl+Enter键可以直接提交]
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
.NET频道
知识库
找找看
Google站内搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
相关链接:
最新IT新闻:
19岁天才黑客发布首个iPhone 3GS破解软件
新浪邮箱大本营粉墨登场!Sina.cn开放注册
IE市场份额首次跌破60%
Google App Engine宕机6小时——云的安全在哪里?
微软新推社交网站Windows Live Planet
<
2005年11月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
公告
电子邮箱:ghd258@gmail.com MSN:
ghd258@hotmail.com
您是第
位访问者
与我联系
发短消息
搜索
我参加的小组
Web技术联盟
我参与的团队
.NET 控件与组件开发(0/0)
广州.NET俱乐部(0/0)
Ajax&Atlas技术团队(0/0)
.NetFramework3.0 & 3.5(WCF,WPF,WF)团队(0/0)
微软(西安).NET开发俱乐部(0/0)
随笔分类
(216)
.Net Remoting
(rss)
ADO.NET 2.0(4)
(rss)
AJAX(1)
(rss)
ASP.NET(57)
(rss)
ASP.NET 2.0(38)
(rss)
C#(15)
(rss)
CSS(4)
(rss)
Enterprise Library (2)
(rss)
JS(21)
(rss)
NUnit(1)
(rss)
Oracle(6)
(rss)
SQL SERVER 2000(22)
(rss)
SQL SERVER 2005(11)
(rss)
WEB SERVICE(1)
(rss)
Windows Workflow Foundation (5)
(rss)
WINFORM
(rss)
XML(6)
(rss)
功能函数(5)
(rss)
俱乐部事宜(2)
(rss)
其他
(rss)
软件工程(3)
(rss)
数据库
(rss)
水晶报表(3)
(rss)
图片(3)
(rss)
项目管理(4)
(rss)
业界新闻(1)
(rss)
正则表达式(1)
(rss)
智能客户端技术
(rss)
文章分类
(23)
.Net Remoting
(rss)
ADO.NET
(rss)
ASP.NET(10)
(rss)
ASP.NET2.0
(rss)
C#(2)
(rss)
CSS
(rss)
js(5)
(rss)
Oracle
(rss)
SQL SERVER 2000(5)
(rss)
SQL SERVER 2005
(rss)
WEB SERVICE 技术
(rss)
XML
(rss)
项目管理(1)
(rss)
智能客户端技术
(rss)
相册
我的家园
我的证书
收藏夹
(321)
ADO.NET(21)
(rss)
ADO.NET 2.0
(rss)
ASP.NET(92)
(rss)
ASP.NET 2.0(116)
(rss)
C#(15)
(rss)
JS(23)
(rss)
NUnit(5)
(rss)
SQL SERVER 2000(12)
(rss)
SQL SERVER 2005(19)
(rss)
WEB SERVICE(14)
(rss)
XML(3)
(rss)
智能客户端技术(1)
(rss)
连接
BizTalk学习笔记系列
DooIT(ttyp)
Gmail - 收件箱
MSDN Webcast 中心
NFramework开源AOP框架
Rickie Lee's blog
zlz_212的专栏(Dundas Chart )
代码生成工具CodePlusV2.0
老赵点滴“深入Atlas系列”
清清月儿 .NET
深圳.NET 俱乐部
我CSDN的BLOG
邀月的博客日记
积分与排名
积分 - 409126
排名 - 82
最新随笔
1. 微软西安.NET俱乐部(.NET User Group) 邀请主讲讲师
2. 热烈庆祝西安.NET俱乐部加入微软.NET俱乐部(.NET User Group)
3. Enterprise Library 4.0 - May 2008 发布了
4. SQL语句对表中父子节点正向和反向取所有节点
5. 微软(西安).NET俱乐部成立聚会和Visual Studio 2008 社区发布全国巡展邀请函
6. 西安.NET俱乐部聚会活动意见征询
7. 数据库设计经验之谈(转载)
8. “保证软件测试质量的4个根基”主题培训峰会
9. 数据回发时,维护ASP.NET Tree控件位置
10. 国内项目开发过程分析总结
11. 解析.Net框架下的XML编程技术 (转载)
12. asp.net2.0导出pdf文件完美解决方案(转载)
13. 关于IE6和IE7关闭窗口时提示和不提示以及上传图片前的本地预览解决办法
14. ASP.NET2.0打通文件图片处理任督二脉(转载)
15. 项目开发经验谈(二)
16. 项目开发经验谈(一)
17. 在项目开发总的一些感受,希望大家共同来探讨项目管理中的一些看法
18. js技巧收集(200多个) (转)
19. [Javascript] 如何在客户端验证表单被改变
20. 如何去掉ie里面的关闭按钮,和屏蔽ALT+F4 (转载)
21. 深入理解JavaScript中的函数
22. 庆祝"西安.NET俱乐部"成立,请申请加入的朋友在这里报到
23. 在SQL Server 2005中用存储过程实现搜索功能
24. 55种网页常用小技巧(javascript)
25. 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
26. 基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展
27. ASP.NET 中处理页面“回退”的方法
28. 在 ASP.NET 上实现锁定表头、支持滚动的表格的做法
29. 事半功倍系列之javascript (转载)
30. 利用键盘上的上下左右(回车)键模拟出tab 键的功能上下左右移动焦点