原文件作者是:csdn.net的清清月儿 她的主页 http://blog.csdn.net/21aspnet/
15.GridView合并表头多重表头无错完美版(以合并3列3行举例)
后台代码
代码
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
public partial class _Default : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = " update 飞狐工作室 set 姓名=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim() + " ',家庭住址=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim() + " ' where 身份证号码=' "
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + " ' " ;
sqlcom = new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = - 1 ;
bind();
}
protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = - 1 ;
bind();
}
public void bind()
{
string sqlstr = " select top 10 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
sqlcon.Close();
}
// 这里就是解决方案
protected void GridView1_RowCreated( object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
// 第一行表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add( new TableHeaderCell());
tcHeader[ 0 ].Attributes.Add( " rowspan " , " 3 " ); // 跨Row
tcHeader[ 0 ].Attributes.Add( " bgcolor " , " white " );
tcHeader[ 0 ].Text = "" ;
tcHeader.Add( new TableHeaderCell());
// tcHeader[1].Attributes.Add("bgcolor", "Red");
tcHeader[ 1 ].Attributes.Add( " colspan " , " 6 " ); // 跨Column
tcHeader[ 1 ].Text = " 全部信息</th></tr><tr> " ;
// 第二行表头
tcHeader.Add( new TableHeaderCell());
tcHeader[ 2 ].Attributes.Add( " bgcolor " , " DarkSeaGreen " );
tcHeader[ 2 ].Text = " 身份证号码 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 3 ].Attributes.Add( " bgcolor " , " LightSteelBlue " );
tcHeader[ 3 ].Attributes.Add( " colspan " , " 2 " );
tcHeader[ 3 ].Text = " 基本信息 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 4 ].Attributes.Add( " bgcolor " , " DarkSeaGreen " );
tcHeader[ 4 ].Text = " 福利 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 5 ].Attributes.Add( " bgcolor " , " LightSteelBlue " );
tcHeader[ 5 ].Attributes.Add( " colspan " , " 2 " );
tcHeader[ 5 ].Text = " 联系方式</th></tr><tr> " ;
// 第三行表头
tcHeader.Add( new TableHeaderCell());
tcHeader[ 6 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 6 ].Text = " 身份证号码 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 7 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 7 ].Text = " 姓名 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 8 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 8 ].Text = " 出生日期 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 9 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 9 ].Text = " 薪水 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 10 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 10 ].Text = " 家庭住址 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 11 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 11 ].Text = " 邮政编码 " ;
break ;
}
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
public partial class _Default : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = " update 飞狐工作室 set 姓名=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim() + " ',家庭住址=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim() + " ' where 身份证号码=' "
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + " ' " ;
sqlcom = new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = - 1 ;
bind();
}
protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = - 1 ;
bind();
}
public void bind()
{
string sqlstr = " select top 10 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
sqlcon.Close();
}
// 这里就是解决方案
protected void GridView1_RowCreated( object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
// 第一行表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add( new TableHeaderCell());
tcHeader[ 0 ].Attributes.Add( " rowspan " , " 3 " ); // 跨Row
tcHeader[ 0 ].Attributes.Add( " bgcolor " , " white " );
tcHeader[ 0 ].Text = "" ;
tcHeader.Add( new TableHeaderCell());
// tcHeader[1].Attributes.Add("bgcolor", "Red");
tcHeader[ 1 ].Attributes.Add( " colspan " , " 6 " ); // 跨Column
tcHeader[ 1 ].Text = " 全部信息</th></tr><tr> " ;
// 第二行表头
tcHeader.Add( new TableHeaderCell());
tcHeader[ 2 ].Attributes.Add( " bgcolor " , " DarkSeaGreen " );
tcHeader[ 2 ].Text = " 身份证号码 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 3 ].Attributes.Add( " bgcolor " , " LightSteelBlue " );
tcHeader[ 3 ].Attributes.Add( " colspan " , " 2 " );
tcHeader[ 3 ].Text = " 基本信息 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 4 ].Attributes.Add( " bgcolor " , " DarkSeaGreen " );
tcHeader[ 4 ].Text = " 福利 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 5 ].Attributes.Add( " bgcolor " , " LightSteelBlue " );
tcHeader[ 5 ].Attributes.Add( " colspan " , " 2 " );
tcHeader[ 5 ].Text = " 联系方式</th></tr><tr> " ;
// 第三行表头
tcHeader.Add( new TableHeaderCell());
tcHeader[ 6 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 6 ].Text = " 身份证号码 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 7 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 7 ].Text = " 姓名 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 8 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 8 ].Text = " 出生日期 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 9 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 9 ].Text = " 薪水 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 10 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 10 ].Text = " 家庭住址 " ;
tcHeader.Add( new TableHeaderCell());
tcHeader[ 11 ].Attributes.Add( " bgcolor " , " Khaki " );
tcHeader[ 11 ].Text = " 邮政编码 " ;
break ;
}
}
}
前台代码
代码
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > GridView合并多重表头表头 清清月儿http://blog.csdn.net/21aspnet </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False" CellPadding ="3" OnRowEditing ="GridView1_RowEditing"
OnRowUpdating ="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" OnRowCreated ="GridView1_RowCreated" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:CommandField HeaderText ="编辑" ShowEditButton ="True" />
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > GridView合并多重表头表头 清清月儿http://blog.csdn.net/21aspnet </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False" CellPadding ="3" OnRowEditing ="GridView1_RowEditing"
OnRowUpdating ="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" OnRowCreated ="GridView1_RowCreated" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:CommandField HeaderText ="编辑" ShowEditButton ="True" />
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
16.GridView突出显示某一单元格(例如金额低于多少,分数不及格等)
解决方案:主要是绑定后过滤
代码
GridView1.DataBind();
for ( int i = 0 ; i <= GridView1.Rows.Count - 1 ; i ++ )
{
DataRowView mydrv = myds.Tables[ " 飞狐工作室 " ].DefaultView[i];
string score = Convert.ToString(mydrv[ " 起薪 " ]);
if (Convert.ToDouble(score) < 34297.00 ) // 大家这里根据具体情况设置可能ToInt32等等
{
GridView1.Rows[i].Cells[ 4 ].BackColor = System.Drawing.Color.Red;
}
}
sqlcon.Close();
for ( int i = 0 ; i <= GridView1.Rows.Count - 1 ; i ++ )
{
DataRowView mydrv = myds.Tables[ " 飞狐工作室 " ].DefaultView[i];
string score = Convert.ToString(mydrv[ " 起薪 " ]);
if (Convert.ToDouble(score) < 34297.00 ) // 大家这里根据具体情况设置可能ToInt32等等
{
GridView1.Rows[i].Cells[ 4 ].BackColor = System.Drawing.Color.Red;
}
}
sqlcon.Close();
所有后台代码
代码
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = " update 飞狐工作室 set 姓名=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim() + " ',家庭住址=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim() + " ' where 身份证号码=' "
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + " ' " ;
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = - 1 ;
bind();
}
protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = - 1 ;
bind();
}
public void bind()
{
string sqlstr = " select top 10 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
for ( int i = 0 ; i <= GridView1.Rows.Count - 1 ; i ++ )
{
DataRowView mydrv = myds.Tables[ " 飞狐工作室 " ].DefaultView[i];
string score = Convert.ToString(mydrv[ " 起薪 " ]);
if (Convert.ToDouble(score) < 34297.00 ) // 大家这里根据具体情况设置可能ToInt32等等
{
GridView1.Rows[i].Cells[ 4 ].BackColor = System.Drawing.Color.Red;
}
}
sqlcon.Close();
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = " update 飞狐工作室 set 姓名=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim() + " ',家庭住址=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim() + " ' where 身份证号码=' "
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + " ' " ;
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = - 1 ;
bind();
}
protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = - 1 ;
bind();
}
public void bind()
{
string sqlstr = " select top 10 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
for ( int i = 0 ; i <= GridView1.Rows.Count - 1 ; i ++ )
{
DataRowView mydrv = myds.Tables[ " 飞狐工作室 " ].DefaultView[i];
string score = Convert.ToString(mydrv[ " 起薪 " ]);
if (Convert.ToDouble(score) < 34297.00 ) // 大家这里根据具体情况设置可能ToInt32等等
{
GridView1.Rows[i].Cells[ 4 ].BackColor = System.Drawing.Color.Red;
}
}
sqlcon.Close();
}
}
前台代码:
代码
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head id ="Head1" runat ="server" >
< title > GridView突出显示某一单元格 清清月儿http://blog.csdn.net/21aspnet </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False" CellPadding ="3" OnRowEditing ="GridView1_RowEditing"
OnRowUpdating ="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:CommandField HeaderText ="编辑" ShowEditButton ="True" />
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" DataFormatString ="{0:C}" HtmlEncode ="false" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head id ="Head1" runat ="server" >
< title > GridView突出显示某一单元格 清清月儿http://blog.csdn.net/21aspnet </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False" CellPadding ="3" OnRowEditing ="GridView1_RowEditing"
OnRowUpdating ="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:CommandField HeaderText ="编辑" ShowEditButton ="True" />
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" DataFormatString ="{0:C}" HtmlEncode ="false" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
17.GridView加入自动求和求平均值小计
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
private
double
sum
=
0
;
//
取指定列的数据和,你要根据具体情况对待可能你要处理的是int
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0 )
{
sum += Convert.ToDouble(e.Row.Cells[ 6 ].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[ 5 ].Text = " 总薪水为: " ;
e.Row.Cells[ 6 ].Text = sum.ToString();
e.Row.Cells[ 3 ].Text = " 平均薪水为: " ;
e.Row.Cells[ 4 ].Text = (( int )(sum / GridView1.Rows.Count)).ToString();
}
}
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0 )
{
sum += Convert.ToDouble(e.Row.Cells[ 6 ].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[ 5 ].Text = " 总薪水为: " ;
e.Row.Cells[ 6 ].Text = sum.ToString();
e.Row.Cells[ 3 ].Text = " 平均薪水为: " ;
e.Row.Cells[ 4 ].Text = (( int )(sum / GridView1.Rows.Count)).ToString();
}
}
后台所有代码:
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = " update 飞狐工作室 set 姓名=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim() + " ',家庭住址=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim() + " ' where 身份证号码=' "
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + " ' " ;
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = - 1 ;
bind();
}
protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = - 1 ;
bind();
}
public void bind()
{
string sqlstr = " select top 5 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
sqlcon.Close();
}
private double sum = 0 ; // 取指定列的数据和
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0 )
{
sum += Convert.ToDouble(e.Row.Cells[ 6 ].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[ 5 ].Text = " 总薪水为: " ;
e.Row.Cells[ 6 ].Text = sum.ToString();
e.Row.Cells[ 3 ].Text = " 平均薪水为: " ;
e.Row.Cells[ 4 ].Text = (( int )(sum / GridView1.Rows.Count)).ToString();
}
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = " update 飞狐工作室 set 姓名=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 1 ].Controls[ 0 ])).Text.ToString().Trim() + " ',家庭住址=' "
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[ 3 ].Controls[ 0 ])).Text.ToString().Trim() + " ' where 身份证号码=' "
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + " ' " ;
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = - 1 ;
bind();
}
protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = - 1 ;
bind();
}
public void bind()
{
string sqlstr = " select top 5 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
sqlcon.Close();
}
private double sum = 0 ; // 取指定列的数据和
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0 )
{
sum += Convert.ToDouble(e.Row.Cells[ 6 ].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[ 5 ].Text = " 总薪水为: " ;
e.Row.Cells[ 6 ].Text = sum.ToString();
e.Row.Cells[ 3 ].Text = " 平均薪水为: " ;
e.Row.Cells[ 4 ].Text = (( int )(sum / GridView1.Rows.Count)).ToString();
}
}
}
前台:唯一的花头就是设置ShowFooter="True" ,否则默认表头为隐藏的!
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
<
asp:GridView
ID
="GridView1"
runat
="server"
AutoGenerateColumns
="False"
CellPadding
="3"
OnRowEditing
="GridView1_RowEditing"
OnRowUpdating ="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" OnRowDataBound ="GridView1_RowDataBound" ShowFooter ="True" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:CommandField HeaderText ="编辑" ShowEditButton ="True" />
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
OnRowUpdating ="GridView1_RowUpdating" OnRowCancelingEdit ="GridView1_RowCancelingEdit" BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" OnRowDataBound ="GridView1_RowDataBound" ShowFooter ="True" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:CommandField HeaderText ="编辑" ShowEditButton ="True" />
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
18.GridView数据导入Excel/Excel数据读入GridView
页面增加一个按钮,单击事件添加如下方法:
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
protected
void
Button1_Click(
object
sender, EventArgs e)
{
Export( " application/ms-excel " , " 学生成绩报表.xls " );
}
private void Export( string FileType, string FileName)
{
Response.Charset = " GB2312 " ;
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader( " Content-Disposition " , " attachment;filename= " + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this .EnableViewState = false ;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
{
Export( " application/ms-excel " , " 学生成绩报表.xls " );
}
private void Export( string FileType, string FileName)
{
Response.Charset = " GB2312 " ;
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader( " Content-Disposition " , " attachment;filename= " + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this .EnableViewState = false ;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
//如果没有下面方法会报错类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内
public override void VerifyRenderingInServerForm(Control control)
{
}
还有由于是文件操作所以要引入名称空间IO和Text
后台代码:
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Text;
public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
public void bind()
{
string sqlstr = " select top 5 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
sqlcon.Close();
}
protected void Button1_Click( object sender, EventArgs e)
{
Export( " application/ms-excel " , " 学生成绩报表.xls " );
}
private void Export( string FileType, string FileName)
{
Response.Charset = " GB2312 " ;
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader( " Content-Disposition " , " attachment;filename= " + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this .EnableViewState = false ;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Text;
public partial class Default7 : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = " Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa " ;
protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
bind();
}
}
public void bind()
{
string sqlstr = " select top 5 * from 飞狐工作室 " ;
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " 飞狐工作室 " );
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string [] { " 身份证号码 " };
GridView1.DataBind();
sqlcon.Close();
}
protected void Button1_Click( object sender, EventArgs e)
{
Export( " application/ms-excel " , " 学生成绩报表.xls " );
}
private void Export( string FileType, string FileName)
{
Response.Charset = " GB2312 " ;
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader( " Content-Disposition " , " attachment;filename= " + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this .EnableViewState = false ;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
}
前台
代码
<
asp:GridView
ID
="GridView1"
runat
="server"
AutoGenerateColumns
="False"
CellPadding
="3"
BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
< asp:Button ID ="Button1" runat ="server" OnClick ="Button1_Click" Text ="导出" />
读取Excel数据的代码:这个很简单的
private DataSet CreateDataSource()
{
string strCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("excel.xls") + "; Extended Properties=Excel 8.0;";
OleDbConnection olecon = new OleDbConnection(strCon);
OleDbDataAdapter myda = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strCon);
DataSet myds = new DataSet();
myda.Fill(myds);
return myds;
}
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}
BackColor ="White" BorderColor ="#CCCCCC" BorderStyle ="None" BorderWidth ="1px" Font-Size ="12px" >
< FooterStyle BackColor ="White" ForeColor ="#000066" />
< Columns >
< asp:BoundField DataField ="身份证号码" HeaderText ="编号" ReadOnly ="True" />
< asp:BoundField DataField ="姓名" HeaderText ="姓名" />
< asp:BoundField DataField ="出生日期" HeaderText ="邮政编码" />
< asp:BoundField DataField ="家庭住址" HeaderText ="家庭住址" />
< asp:BoundField DataField ="邮政编码" HeaderText ="邮政编码" />
< asp:BoundField DataField ="起薪" HeaderText ="起薪" />
</ Columns >
< RowStyle ForeColor ="#000066" />
< SelectedRowStyle BackColor ="#669999" Font-Bold ="True" ForeColor ="White" />
< PagerStyle BackColor ="White" ForeColor ="#000066" HorizontalAlign ="Left" CssClass ="ms-formlabel DataGridFixedHeader" />
< HeaderStyle BackColor ="#006699" Font-Bold ="True" ForeColor ="White" />
</ asp:GridView >
< asp:Button ID ="Button1" runat ="server" OnClick ="Button1_Click" Text ="导出" />
读取Excel数据的代码:这个很简单的
private DataSet CreateDataSource()
{
string strCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("excel.xls") + "; Extended Properties=Excel 8.0;";
OleDbConnection olecon = new OleDbConnection(strCon);
OleDbDataAdapter myda = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strCon);
DataSet myds = new DataSet();
myda.Fill(myds);
return myds;
}
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}