海东的技术资料
博客园
::
首页
:: ::
联系
::
订阅
::
管理
::
202 随笔 :: 33 文章 :: 778 评论 :: 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
高海东
阅读(2259)
评论(3)
编辑
收藏
评论
909859
#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[未注册用户]
??
回复
引用
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
《福布斯》:谷歌进军硬件产品 难撼动苹果地位
·
美国空军拟最多购买1.8万台iPad 2
·
分析称专利之争让谷歌苹果两败俱伤
·
Android平台发现新型手机病毒Rootsmart
·
HTC首款Android4.0手机大曝光
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
<
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
您是第
位访问者
昵称:
高海东
园龄:
6年7个月
粉丝:
22
关注:
1
搜索
随笔分类
(227)
.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(22)
(rss)
NUnit(1)
(rss)
Oracle(6)
(rss)
SQL SERVER 2000(23)
(rss)
SQL SERVER 2005(12)
(rss)
WEB SERVICE(1)
(rss)
Windows Workflow Foundation (5)
(rss)
WINFORM
(rss)
XML(6)
(rss)
功能函数(5)
(rss)
俱乐部事宜(8)
(rss)
其他
(rss)
软件工程(3)
(rss)
数据库(1)
(rss)
水晶报表(3)
(rss)
图片(3)
(rss)
项目管理(5)
(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)
相册
我的家园
我的证书
连接
BizTalk学习笔记系列
DooIT(ttyp)
Gmail - 收件箱
MSDN Webcast 中心
NFramework开源AOP框架
Rickie Lee's blog
zlz_212的专栏(Dundas Chart )
代码生成工具CodePlusV2.0
老赵点滴“深入Atlas系列”
清清月儿 .NET
深圳.NET 俱乐部
我CSDN的BLOG
邀月的博客日记
积分与排名
积分 - 473832
排名 - 130