简单的代码,不过是在asp.net2.0下实现:
效果图:
代码
C#
<%
@ 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] = 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 >
<! 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] = 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 >
vb.net