|
常用鏈接
留言簿(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
>
?
|
|