您的位置:首页 > 编程语言 > ASP

ASP.NET 2.0中合并 GridView 的表头单元格

2008-03-12 22:38 405 查看
在实际工作中,往往需要合并表格头部的单元格,下面就是一个实现的例子。运行结果如图:



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.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] = System.Math.Round(rd.NextDouble() * 100, 2);


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


dr[3] = 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)




...{




GridView1.BorderColor = System.Drawing.Color.DarkOrange;


GridView1.DataSource = CreateDataSource();


GridView1.DataBind();


}


}




protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)




...{


if (e.Row.RowType == DataControlRowType.Header)




...{


GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);


rowHeader.BackColor = System.Drawing.Color.White;


rowHeader.Font.Bold = true;




TableCellCollection cells = e.Row.Cells;


TableCell headerCell = new TableCell();


headerCell.Text = "";


rowHeader.Cells.Add(headerCell);




headerCell = new TableCell();


headerCell.Text = "学生成绩";


headerCell.ColumnSpan = cells.Count - 1;


headerCell.HorizontalAlign = HorizontalAlign.Center;




rowHeader.Cells.Add(headerCell);


rowHeader.Visible = true;


GridView1.Controls[0].Controls.AddAt(0, rowHeader);


}


}




protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)




...{


e.Row.Attributes.Add("style", "background:#FFF");


}


</script>




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


<head>


<title>合并 GridView 的表头单元格</title>


</head>


<body>


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


<asp:GridView ID="GridView1" runat="server" CellSpacing="1" CellPadding="3"


Font-Size="12px" Width="300px" BackColor="orange" BorderWidth="0"


OnRowDataBound="GridView1_RowDataBound" OnRowCreated="GridView1_RowCreated">


</asp:GridView>


</form>


</body>


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