您的位置:首页 > 其它

GridView 实现服务器端和客户端全选的两种方法

2009-11-19 17:32 836 查看
原文出处http://blog.csdn.net/net_lover/archive/2006/10/25/1351234.aspx

<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"

%>

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>

<
script
runat
="server"
>

//
计算数据,完全可以从数据看取得

ICollection CreateDataSource()

{

System.Data.DataTable dt
=

new
System.Data.DataTable();

System.Data.DataRow dr;

dt.Columns.Add(
new
System.Data.DataColumn(
"
序号
"
,
typeof
(System.String)));

dt.Columns.Add(
new
System.Data.DataColumn(
"
学生姓名
"
,
typeof
(System.String)));

dt.Columns.Add(
new
System.Data.DataColumn(
"
语文
"
,
typeof
(System.Decimal)));

dt.Columns.Add(
new
System.Data.DataColumn(
"
数学
"
,
typeof
(System.Decimal)));

dt.Columns.Add(
new
System.Data.DataColumn(
"
英语
"
,
typeof
(System.Decimal)));

dt.Columns.Add(
new
System.Data.DataColumn(
"
计算机
"
,
typeof
(System.Decimal)));

for
(
int
i
=

0
; i
<

8
; i
++
)

{

System.Random rd
=

new
System.Random(Environment.TickCount
*
i); ;

dr
=
dt.NewRow();

dr[
0
]
=
i.ToString();

dr[
1
]
=

"
【孟子E章】
"

+
i.ToString();

dr[
2
]
=
System.Math.Round(rd.NextDouble()
*

100
,
2
);

dr[
3
]
=
System.Math.Round(rd.NextDouble()
*

100
,
2
);

dr[
4
]
=
System.Math.Round(rd.NextDouble()
*

100
,
2
);

dr[
5
]
=
System.Math.Round(rd.NextDouble()
*

100
,
2
);

dt.Rows.Add(dr);

}

System.Data.DataView dv
=

new
System.Data.DataView(dt);

return
dv;

}

protected
void
Page_Load(object sender, EventArgs e)

{

if
(
!
IsPostBack)

{

GridView2.DataSource
=
GridView1.DataSource
=
CreateDataSource();

GridView2.DataBind();

GridView1.DataBind();

}

}

protected
void
Button1_Click(object sender, EventArgs e)

{

Ret1.Text
=

""
;

foreach (GridViewRow gvr
in
GridView1.Rows)

{

CheckBox ch
=
(CheckBox)gvr.FindControl(
"
ItemCheckBox
"
);

if
(ch.Checked)

{

Ret1.Text
+=

"
<li>GridView1 您选择的是(键值):
"

+
GridView1.DataKeys[gvr.DataItemIndex].Value.ToString();

}

}

}

protected
void
Button2_Click(object sender, EventArgs e)

{

Ret2.Text
=

""
;

foreach (GridViewRow gvr
in
GridView2.Rows)

{

CheckBox ch
=
(CheckBox)gvr.FindControl(
"
ItemCheckBox
"
);

if
(ch.Checked)

{

Ret2.Text
+=

"
<li>GridView2 您选择的是(键值):
"

+
GridView2.DataKeys[gvr.DataItemIndex].Value.ToString();

}

}

}

protected
void
CheckAll(object sender, EventArgs e)

{

CheckBox cbx
=
(CheckBox)sender;

foreach (GridViewRow gvr
in
GridView1.Rows)

{

CheckBox ch
=
(CheckBox)gvr.FindControl(
"
ItemCheckBox
"
);

ch.Checked
=
cbx.Checked;

}

}

</
script
>

<
html
xmlns
="http://www.w3.org/1999/xhtml"
>

<
head
>

<
title
>
GridView 实现服务器端和客户端全选的两种方法
</
title
>

<
script
type
="text/javascript"
>

//
<![CDATA[

function
CheckAll(oCheckbox)

{

var
GridView2
=
document.getElementById(
"
<%=GridView2.ClientID %>
"
);

for
(i
=

1
;i
<
GridView2.rows.length; i
++
)

{

GridView2.rows[i].cells[
0
].getElementsByTagName(
"
INPUT
"
)[
0
].checked
=
oCheckbox.checked;

}

}

//
]]>

</
script
>

</
head
>

<
body
>

<
form
id
="Form1"
runat
="server"
>

<
table
style
="width:800px;font-size:12px;"
>

<
tr
valign
="top"
>

<
td
>

<
asp:GridView
ID
="GridView1"
runat
="server"
Font-Size
="12px"
BackColor
="#FFFFFF"

GridLines
="Both"
CellPadding
="4"
DataKeyNames
="序号"
AutoGenerateColumns
="false"
>

<
HeaderStyle
BackColor
="#EDEDED"
Height
="26px"

/>

<
Columns
>

<
asp:TemplateField
>

<
HeaderTemplate
>

<
asp:CheckBox
ID
="CheckBox1"
runat
="server"
Text
="全选"
AutoPostBack
="true"
OnCheckedChanged
="CheckAll"

/>

</
HeaderTemplate
>

<
ItemTemplate
>

<
asp:CheckBox
ID
="ItemCheckBox"
runat
="server"

/>

</
ItemTemplate
>

</
asp:TemplateField
>

<
asp:BoundField
DataField
="学生姓名"
HeaderText
="学生姓名"

/>

<
asp:BoundField
DataField
="语文"
HeaderText
="语文"

/>

<
asp:BoundField
DataField
="数学"
HeaderText
="数学"

/>

<
asp:BoundField
DataField
="英语"
HeaderText
="英语"

/>

<
asp:BoundField
DataField
="计算机"
HeaderText
="计算机"

/>

</
Columns
>

</
asp:GridView
>

<
asp:Button
ID
="Button1"
runat
="server"
OnClick
="Button1_Click"
Text
="得到选择的行值"

/>

</
td
>

<
td
align
="right"
>

<
asp:GridView
ID
="GridView2"
runat
="server"
Font-Size
="12px"
BackColor
="#FFFFFF"

GridLines
="Both"
CellPadding
="4"
DataKeyNames
="序号"
AutoGenerateColumns
="false"
>

<
HeaderStyle
BackColor
="#EDEDED"
Height
="26px"

/>

<
Columns
>

<
asp:TemplateField
>

<
HeaderTemplate
>

<
input
id
="Checkbox2"
type
="checkbox"
onclick
="CheckAll(this)"
runat
="server"

/><
label
>
全选
</
label
>

</
HeaderTemplate
>

<
ItemTemplate
>

<
asp:CheckBox
ID
="ItemCheckBox"
runat
="server"

/>

</
ItemTemplate
>

</
asp:TemplateField
>

<
asp:BoundField
DataField
="学生姓名"
HeaderText
="学生姓名"

/>

<
asp:BoundField
DataField
="语文"
HeaderText
="语文"

/>

<
asp:BoundField
DataField
="数学"
HeaderText
="数学"

/>

<
asp:BoundField
DataField
="英语"
HeaderText
="英语"

/>

<
asp:BoundField
DataField
="计算机"
HeaderText
="计算机"

/>

</
Columns
>

</
asp:GridView
>

<
asp:Button
ID
="Button2"
runat
="server"
OnClick
="Button2_Click"
Text
="得到选择的行值"

/>

</
td
>

</
tr
>

<
tr
valign
="top"
>

<
td
>

<
asp:Literal
ID
="Ret1"
runat
="server"
></
asp:Literal
>

</
td
>

<
td
align
="right"
>

<
asp:Literal
ID
="Ret2"
runat
="server"
></
asp:Literal
>

</
td
>

</
tr
>

</
table
>

</
form
>

</
body
>

</
html
>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: