№.零零伍
博客园
首页
社区
新随笔
联系
订阅
管理
随笔-17 评论-99 文章-16 trackbacks-101
GridView中添加一个CheckBox列
1
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
GridView_CheckBoxColumn.aspx.cs
"
Inherits
=
"
GridSamples_GridView_CheckBoxColumn
"
%>
2
3
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
4
5
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
6
<
head
runat
="server"
>
7
<
title
>
无标题页
</
title
>
8
<
script
language
="javascript"
type
="text/javascript"
>
9
function
selectAll(obj)
10
{
11
var
theTable
=
obj.parentElement.parentElement.parentElement;
12
var
i;
13
var
j
=
obj.parentElement.cellIndex;
14
15
for
(i
=
0
;i
<
theTable.rows.length;i
++
)
16
{
17
var
objCheckBox
=
theTable.rows[i].cells[j].firstChild;
18
if
(objCheckBox.checked
!=
null
)objCheckBox.checked
=
obj.checked;
19
}
20
}
21
</
script
>
22
</
head
>
23
<
body
>
24
<
form
id
="form1"
runat
="server"
>
25
<
div
>
26
<
asp:GridView
ID
="GridView1"
runat
="server"
AllowPaging
="True"
AutoGenerateColumns
="False"
27
DataKeyNames
="id"
DataSourceID
="AccessDataSource1"
AllowSorting
="True"
OnDataBinding
="GridView1_DataBinding"
OnRowDataBound
="GridView1_RowDataBound"
>
28
<
Columns
>
29
<
asp:TemplateField
>
30
<
ItemTemplate
>
31
<
asp:CheckBox
ID
="CheckBox1"
runat
="server"
Checked
="True"
Text
='<%#DataBinder.Eval(Container.DataItem,"id")
%
>
' />
32
</
ItemTemplate
>
33
<
HeaderTemplate
>
34
<
input
id
="CheckAll"
type
="checkbox"
onclick
="selectAll(this);"
/>
本页全选
35
</
HeaderTemplate
>
36
</
asp:TemplateField
>
37
<
asp:BoundField
DataField
="id"
HeaderText
="id"
InsertVisible
="False"
ReadOnly
="True"
38
SortExpression
="id"
/>
39
<
asp:BoundField
DataField
="name"
HeaderText
="name"
SortExpression
="name"
/>
40
<
asp:BoundField
DataField
="sex"
HeaderText
="sex"
SortExpression
="sex"
/>
41
<
asp:BoundField
DataField
="deptid"
HeaderText
="deptid"
SortExpression
="deptid"
/>
42
</
Columns
>
43
</
asp:GridView
>
44
45
46
<
asp:AccessDataSource
ID
="AccessDataSource1"
runat
="server"
DataFile
="~/App_Data/test.mdb"
47
SelectCommand
="SELECT [id], [name], [sex], [deptid] FROM [employees]"
></
asp:AccessDataSource
>
48
<
asp:Button
ID
="Button1"
runat
="server"
OnClick
="Button1_Click"
Text
="ShowAllSelectedItem"
/>
49
<
asp:TextBox
ID
="TextBox1"
runat
="server"
Width
="200px"
></
asp:TextBox
></
div
>
50
</
form
>
51
</
body
>
52
</
html
>
53
1
using
System;
2
using
System.Data;
3
using
System.Configuration;
4
using
System.Collections;
5
using
System.Web;
6
using
System.Web.Security;
7
using
System.Web.UI;
8
using
System.Web.UI.WebControls;
9
using
System.Web.UI.WebControls.WebParts;
10
using
System.Web.UI.HtmlControls;
11
12
public
partial
class
GridSamples_GridView_CheckBoxColumn : System.Web.UI.Page
13
{
14
/**/
///
<summary>
15
///
获取或设置选中项的集合
16
///
</summary>
17
protected
ArrayList SelectedItems
18
{
19
get
20
{
21
return
(ViewState[
"
mySelectedItems
"
]
!=
null
)
?
(ArrayList)ViewState[
"
mySelectedItems
"
] :
null
;
22
}
23
set
24
{
25
ViewState[
"
mySelectedItems
"
]
=
value;
26
}
27
}
28
29
protected
void
Page_Load(
object
sender, EventArgs e)
30
{
31
32
}
33
34
35
protected
void
GridView1_DataBinding(
object
sender, EventArgs e)
36
{
37
//
在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
38
CollectSelected();
39
}
40
41
42
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
43
{
44
//
这里的处理是为了回显之前选中的情况
45
if
(e.Row.RowIndex
>
-
1
&&
this
.SelectedItems
!=
null
)
46
{
47
DataRowView row
=
e.Row.DataItem
as
DataRowView;
48
CheckBox cb
=
e.Row.FindControl(
"
CheckBox1
"
)
as
CheckBox;
49
if
(
this
.SelectedItems.Contains(row[
"
id
"
].ToString()))
50
cb.Checked
=
true
;
51
else
52
cb.Checked
=
false
;
53
}
54
}
55
/**/
///
<summary>
56
///
从当前页收集选中项的情况
57
///
</summary>
58
protected
void
CollectSelected()
59
{
60
ArrayList selectedItems
=
null
;
61
if
(
this
.SelectedItems
==
null
)
62
selectedItems
=
new
ArrayList();
63
else
64
selectedItems
=
this
.SelectedItems;
65
66
for
(
int
i
=
0
; i
<
this
.GridView1.Rows.Count; i
++
)
67
{
68
string
id
=
this
.GridView1.Rows[i].Cells[
1
].Text;
69
CheckBox cb
=
this
.GridView1.Rows[i].FindControl(
"
CheckBox1
"
)
as
CheckBox;
70
if
(selectedItems.Contains(id)
&&
!
cb.Checked)
71
selectedItems.Remove(id);
72
if
(
!
selectedItems.Contains(id)
&&
cb.Checked)
73
selectedItems.Add(id);
74
}
75
this
.SelectedItems
=
selectedItems;
76
}
77
78
protected
void
Button1_Click(
object
sender, EventArgs e)
79
{
80
//
最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
81
CollectSelected();
82
83
this
.TextBox1.Text
=
string
.Empty;
84
foreach
(
object
tmp
in
this
.SelectedItems)
85
this
.TextBox1.Text
+=
tmp.ToString()
+
"
,
"
;
86
}
87
}
88
0
0
0
(请您对文章做出评价)
«
上一篇:
Scott Mitchell 的ASP.NET 2.0数据教程之六:: 编程设置ObjectDataSource的参数值
»
下一篇:
GridView中添加一个Radio列
posted on 2006-07-04 22:19
№.零零伍
阅读(11497)
评论(0)
编辑
收藏
网摘
所属分类:
CSDN常见问题集
注册用户登录后才能发表评论,请
登录
或
注册
。
IT新闻
:
·
知名扩展 Firebug 的简化版登陆 Chrome
·
Google 悄悄地启用 1e100.net,打枪地不要
·
从 Google 代码库找到的好东西
·
苹果在线商店临时关闭 或将推新Macbook
·
豆瓣网推出豆瓣电台iPhone客户端
每天10分钟,轻松学英语
专题:
iPad
jQuery
Windows 7
网站导航:
博客园首页
IT新闻
个人主页
闪存
程序员招聘
社区
博问
网摘
China-pub 计算机图书网上专卖店!6.5万品种2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关搜索:
CSDN常见问题集
在知识库中查看:
GridView中添加一个CheckBox列
我的主页
个人资料
我的闪存
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
随笔分类
(17)
CSDN常见问题集(7)
感悟零零伍(1)
技术文章-翻译(8)
转行卖茅厕了~(1)
随笔档案
(17)
2007年8月 (1)
2006年8月 (5)
2006年7月 (8)
2006年6月 (3)
文章分类
(12)
Project Management(12)
相册
零零伍的幸福人生
积分与排名
积分 - 140575
排名 - 476
阅读排行榜
1. Scott Mitchell 的ASP.NET 2.0数据教程之四:: 使用ObjectDataSource展现数据(19189)
2. 【翻译】Scott Mitchell的ASP.NET2.0数据教程中文版索引 (16367)
3. Scott Mitchell 的ASP.NET 2.0数据教程之十六::概述插入、更新和删除数据(15560)
4. Scott Mitchell 的ASP.NET 2.0数据教程之二十一:: 实现开放式并发(12520)
5. Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常(11563)
6. GridView中添加一个CheckBox列(11497)
7. Scott Mitchell 的ASP.NET 2.0数据教程之六:: 编程设置ObjectDataSource的参数值(10685)
8. GridView模版列嵌套GirdView显示主从表数据(10174)
9. Scott Mitchell 的ASP.NET 2.0数据教程之五:: 声明参数(8922)
10. Scott Mitchell 的ASP.NET 2.0数据教程之十七:: 研究插入、更新和删除的关联事件(8553)
11. 收录了一篇关于项目管理九大知识领域的比较详细的教程~(1923)
12. 母版页可以多层嵌套使用~(1839)
13. 关于 DataControlRowType枚举 和 DataControlRowState 枚举(1162)
14. GridView中添加一个Radio列 (1129)
15. 母版页可以动态切换吗?(1015)
16. asp.net 2.0控件一些有可能是bug的小问题:(797)
17. http://www.heshunjc.cn/(318)