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

    技术2022-05-11  65

    ASP.NET 2.0中合并 GridView 的表头单元格 实际工作中,往往需要合并表格头部的单元格,下面就是一个实现的例子。运行结果如图:

    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() * 1002);      dr[2= System.Math.Round(rd.NextDouble() * 1002);      dr[3= System.Math.Round(rd.NextDouble() * 1002);      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(00, 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 * 1002)      dr(2= System.Math.Round(rd.NextDouble * 1002)      dr(3= System.Math.Round(rd.NextDouble * 1002)      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 ObjectByVal 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 ObjectByVal e As GridViewRowEventArgs)    If e.Row.RowType = DataControlRowType.Header Then      Dim rowHeader As GridViewRow = New GridViewRow(00, 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 ObjectByVal 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 >

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1502984

     

    最新回复(0)