在实际工作中,往往需要合并表格头部的单元格,下面就是一个实现的例子。运行结果如图:
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
>

9
7
3
12
4
8
:
| 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。 |