№.零零伍
博客园
首页
社区
新随笔
联系
订阅
管理
随笔-17 评论-96 文章-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
posted on 2006-07-04 22:19
№.零零伍
阅读(10241)
评论(0)
编辑
收藏
网摘
所属分类:
CSDN常见问题集
刷新评论列表
刷新页面
返回页首
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
442837
链接:
切换模板
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
Twitter无处不在 魔兽世界Twitter发送器插件发布
Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新
预测:Twitter最可能收购的十家公司
网易澄清:与暴雪合资公司仅提供技术支持
杰克逊悼念仪式或成史上最大规模Web活动
相关链接:
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
随笔分类
(17)
CSDN常见问题集(7)
感悟零零伍(1)
技术文章-翻译(8)
转行卖茅厕了~(1)
随笔档案
(17)
2007年8月 (1)
2006年8月 (5)
2006年7月 (8)
2006年6月 (3)
文章分类
(12)
Project Management(12)
相册
零零伍的幸福人生
积分与排名
积分 - 132823
排名 - 395
阅读排行榜
1. Scott Mitchell 的ASP.NET 2.0数据教程之四:: 使用ObjectDataSource展现数据(18364)
2. 【翻译】Scott Mitchell的ASP.NET2.0数据教程中文版索引 (15779)
3. Scott Mitchell 的ASP.NET 2.0数据教程之十六::概述插入、更新和删除数据(14703)
4. Scott Mitchell 的ASP.NET 2.0数据教程之二十一:: 实现开放式并发(12207)
5. Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常(11191)
6. Scott Mitchell 的ASP.NET 2.0数据教程之六:: 编程设置ObjectDataSource的参数值(10282)
7. GridView中添加一个CheckBox列(10241)
8. GridView模版列嵌套GirdView显示主从表数据(9059)
9. Scott Mitchell 的ASP.NET 2.0数据教程之五:: 声明参数(8632)
10. Scott Mitchell 的ASP.NET 2.0数据教程之十七:: 研究插入、更新和删除的关联事件(7870)
11. 收录了一篇关于项目管理九大知识领域的比较详细的教程~(1780)
12. 母版页可以多层嵌套使用~(1629)
13. GridView中添加一个Radio列 (1087)
14. 关于 DataControlRowType枚举 和 DataControlRowState 枚举(1073)
15. 母版页可以动态切换吗?(945)
16. asp.net 2.0控件一些有可能是bug的小问题:(772)
17. http://www.heshunjc.cn/(297)