海东的技术资料
博客园
::
首页
:: ::
联系
::
订阅
::
管理
::
204 随笔 :: 22 文章 :: 665 评论 :: 55 Trackbacks
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
高海东
阅读(1641)
评论(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
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
另存
打印
所属分类的其他文章:
·
javascript实现datagrid客户端checkbox列的全选,反选
·
按比例缩放图片
·
保存页面的滚动条的位置
·
保存div与页面滚动条的位置
·
收集的一些综合功能函数
最新IT新闻:
·
预装 Ubuntu 8.04 的 Dell 笔记本发售
·
金山:360的免费杀毒只能是短期行为
·
江民科技回应杀毒软件免费说 没病不能乱吃药
·
WCG2008中国区总决赛打响
·
新型的编程语言:eC
博客园新闻频道
博客园首页
社区
<
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 控件与组件开发(3/1343)
广州.NET俱乐部(1/1694)
Ajax&Atlas技术团队(0/1133)
.NetFramework3.0 & 3.5(WCF,WPF,WF)团队(0/561)