|
常用链接
留言簿(2)
随笔档案
小鸟
李俊平
搜索
最新评论
阅读排行榜
评论排行榜
Powered by: 博客园
模板提供:沪江博客
|
|
|
|
|
发新文章 |
|
|
在实际工作中,往往需要合并表格头部的单元格,下面就是一个实现的例子。运行结果如图:
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
>
VB.NET
<%
...
@ Page Language
=
"
VB
"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
script
runat
="server"
>
...
Function CreateDataSource() As ICollection Dim dt As System.Data.DataTable
=
New System.Data.DataTable Dim dr As System.Data.DataRow dt.Columns.Add(New System.Data.DataColumn(
"
学生姓名
"
, GetType(System.String))) dt.Columns.Add(New System.Data.DataColumn(
"
语文
"
, GetType(System.Decimal))) dt.Columns.Add(New System.Data.DataColumn(
"
数学
"
, GetType(System.Decimal))) dt.Columns.Add(New System.Data.DataColumn(
"
英语
"
, GetType(System.Decimal))) Dim i As Integer
=
0
For i
=
0
To
7
Dim rd As System.Random
=
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) Next Dim dv As System.Data.DataView
=
New System.Data.DataView(dt) Return dv End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) If Not IsPostBack Then GridView1.BorderColor
=
System.Drawing.Color.DarkOrange GridView1.DataSource
=
CreateDataSource() GridView1.DataBind() End If End Sub
Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs) If e.Row.RowType
=
DataControlRowType.Header Then Dim rowHeader As GridViewRow
=
New GridViewRow(
0
,
0
, DataControlRowType.Header, DataControlRowState.Normal) rowHeader.BackColor
=
System.Drawing.Color.White rowHeader.Font.Bold
=
True Dim cells As TableCellCollection
=
e.Row.Cells Dim headerCell As TableCell
=
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) End If End Sub
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) e.Row.Attributes.Add(
"
style
"
,
"
background:#FFF
"
) End Sub
</
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
>
|
|