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

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>

转载于:https://www.cnblogs.com/hzuIT/articles/715716.html

ASP.NET 2.0中合并 GridView 的表头单元格相关推荐

  1. 使用ASP.NET 2.0中的GridView控件

    在ASP.NET 2.0中,加入了许多新的功能和控件,相比asp.net 1.0/1.1,在各方面都有了很大的提高.其中,在数据控件方面,增加了不少控件,其中的gridview控件功能十分强大.在本文 ...

  2. ASP.NET 2.0中使用Gridview控件的高级技巧

    ASP.NET 2.0中,新增加的gridview控件的确十分强大,弥补了在asp.net 1.1中,使用datagrid控件时的不足之处.因为在asp.net 1.1中,在使用datagrid时,很 ...

  3. Excle中合并相同数据的单元格后,依然保持原有单元格数据内容,取消单元格合并后显示原有数据内容

    1.先设置一些数据,这里我以一列为例 2.然后我们找相同的一块列区域,然后合并单元格 3.选中合并的区域,然后选择格式刷,然后选中相同数字区域,就可以了 取消合并后又显示之前的数据

  4. asp.net 2.0中一次性更新所有GRIDVIEW的记录

    在asp.net 2.0中,gridview控件是十分不错的控件.有的时候,可能一个GRIDVIEW控件中 的各行都是文本框,如何一次性更新所有修改过的记录呢?有两种方法,一种是使用sqldataso ...

  5. 测试ASP.NET 2.0中Gridview控件高级技巧

    ASP.NET 2.0中,新增加的gridview控件的确十分强大,弥补了在asp.net 1.1中,使用datagrid控件时的不足之处.因为在asp.net 1.1中,在使用datagrid时,很 ...

  6. asp.net 2.0 中GridView里设置日期格式

    在asp.net 1.0 中的datagrid 中 设置日期字段格式时用 DataFormatString="{0:yyyy-MM-dd}"即可.    在gridview 中设置 ...

  7. ASP.NET 2.0 中动态添加 GridView 模板列

      ASP.NET 2.0 中动态添加 GridView 模板列的例子 动态添加列,关键是实现 ITemplate.InstantiateIn 方法.下面是一个添加 GridView 模板列的例子. ...

  8. ASP.NET 2.0 中动态添加 GridView 模板列的...

    framespacing="0" src="http://what.yesky.com/by/ztdh.htm" frameborder="0&quo ...

  9. 在ASP.NET 2.0中使用样式、主题和皮肤

    ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme).接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉.通过改 ...

  10. [翻译]在Asp.net 2.0中操作数据::母板页和站点导航

    在Asp.net 2.0中操作数据::母板页和站点导航 英文原文 |  下载示例代码(C#)  |  翻译进度  |  英文教程目录 导言 通常,用户友好的个性化站点都有着一致的,站点统一的页面布局和 ...

最新文章

  1. 中科院DeepMind联手,用深度学习揭示大脑如何识别人脸|Nature子刊
  2. ASP删除黑客建立的只读文件夹和文件
  3. c语言创建新指针,如何用c语言创建一个指针
  4. 回溯法在解决八皇后问题中的应用
  5. 构造方法与对象的创建 java 1614780813
  6. jq使用教程03_JQData说明书概要
  7. (JAVA版)冒泡排序
  8. ffmpeg 音乐循环_背景音乐自动循环播放
  9. centos7搭建aria2+yaaw
  10. 大学毕业生推荐表的计算机水平,大学毕业生就业推荐表学校鉴定评语
  11. 关于滚动贯穿的解决方案
  12. 给自己:得失心莫太重,功利心莫太强
  13. 【Web】ES6学习笔记
  14. 图片的降噪处理 java_OpenCV去除图像中的噪声
  15. 客户端访问https时应无浏览器(含终端)安全警告信息;_Http升级Https(Let#x27;s Encrypt)...
  16. react 实现问卷调查(单选题目、多选题目)
  17. notepad数据对比插件_如何使用NotePad++的compare插件进行文本对比,来研究下吧
  18. logits and labels must be broadcastable: logits_size=[131072,9] labels_size=[131072,8]的错误
  19. 京东方校园招聘页面重构
  20. Java编程语言-基础

热门文章

  1. Linux下安装Mysql详解
  2. 使用maven搭建ssm项目配置+tomact
  3. toStringequals方法
  4. Xamarin iOS教程之使用按钮接接收用户输入
  5. SQL Server 版本变更检查
  6. Entity Framework 笔记(一)
  7. 拆分php中 $i++ ++$i PHP中的i++与++i的区别及效率
  8. oracle 中 cursor 与refcursor及sys_refcursor的区别 (转载)
  9. Burp Suite详细使用教程-Intruder模块详3
  10. OC语法8——@class关键字