在实际工作中,往往需要合并表格头部的单元格,下面就是一个实现的例子
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() 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() 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() 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() Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
e.Row.Attributes.Add("style", "background:#FFF")
End Sub
< / script>
<!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() 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() 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() 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() Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
e.Row.Attributes.Add("style", "background:#FFF")
End Sub
< / script>