302班

          java突擊隊
          posts - 151, comments - 74, trackbacks - 0, articles - 14
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          ASP.NET 2.0中合并 GridView 的表頭單元格

          Posted on 2007-04-19 11:37 停留的風 閱讀(887) 評論(0)  編輯  收藏 所屬分類: .NET技術

          在實際工作中,往往需要合并表格頭部的單元格,下面就是一個實現的例子。運行結果如圖:

          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 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(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 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>
          前臺頁面
          源程序如下:
          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>
          主站蜘蛛池模板: 本溪| 昂仁县| 夏邑县| 庆云县| 尼木县| 新营市| 高唐县| 永德县| 开远市| 当雄县| 成都市| 罗江县| 县级市| 南川市| 武汉市| 邹平县| 内丘县| 马关县| 阳新县| 阿城市| 石城县| 达拉特旗| 镶黄旗| 芷江| 含山县| 阳高县| 建宁县| 苏尼特左旗| 都兰县| 锡林浩特市| 孟津县| 子洲县| 武清区| 丹东市| 新巴尔虎左旗| 宜都市| 高密市| 嘉祥县| 平原县| 呼玛县| 阿荣旗|