夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> vs2022_vs2019_vs2017_vs2014_vs2012
ASP.NET(C#)GridView表头的增加
夜鹰教程网 来源:www.yyjcw.com 日期:2016-11-14 18:35:55
ASP.NET(C#)GridView表头的增加

<%@ 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.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)));
     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] = "学生" + i.ToString();
       dr[
2] = System.Math.Round(rd.NextDouble() * 100, 2);
       dr[
3] = System.Math.Round(rd.NextDouble() * 100, 2);
       dr[
4] = System.Math.Round(rd.NextDouble() * 100, 2);
       dr[
5] = 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,相当于表格的 TR 一行
       GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
       string HeaderBackColor
= "#EDEDED";
       rowHeader.BackColor
= System.Drawing.ColorTranslator.FromHtml(HeaderBackColor);

      
//实现确定要显示的表头样式,也可以通过计算生成

      
//     <tr>
      //       <td rowspan='2'>关键单元格</td>
      //       <td colspan='2'>表头文字</td>
      //       <td colspan='2'>表头文字</td>
      //       <td>表头文字</td>
      //       </tr>
      //       <tr bgcolor='#FFF'>
      //       <td colspan='2'>表头文字</td>
      //       <td rowspan='2'>表头文字</td>
      //       <td colspan='2'>表头文字</td>
      //       </tr>
      //       <tr bgcolor='#FFF'>
      //       <td>表头文字</td>
      //       <td>表头文字</td>
      //       <td>表头文字</td>
      //       <td>表头文字</td>
      //       <td>表头文字</td>";
      //    </tr>
      // 上面的样式可以设置斜线

       Literal newCells
= new Literal();
       newCells.Text
= @"表头文字1</th>
                   <th colspan='2'>表头文字2</th>
                   <th colspan='2'>表头文字3</th>
                   <th>表头文字4</th>
                   </tr>
                   <tr bgcolor='
" + HeaderBackColor + "'>";
       newCells.Text
+= @"                         
                   <th colspan='2'>表头文字5</th>
                   <th rowspan='2'>表头文字6</th>
                   <th colspan='2'>表头文字7</th>
                   </tr>
                   <tr bgcolor='
" + HeaderBackColor + "'>";
       newCells.Text
+= @"  
                   <th>表头文字8</th>
                   <th>表头文字9</th>
                   <th>表头文字10</th>
                   <th>表头文字11</th>
                   <th>表头文字12
";

       TableCellCollection cells
= e.Row.Cells;
       TableHeaderCell headerCell
= new TableHeaderCell();
      
//下面的属性设置与 <td rowspan='2'>关键单元格</td> 要一致
       headerCell.RowSpan = 2;
       headerCell.Controls.Add(newCells);
       rowHeader.Cells.Add(headerCell);

       rowHeader.Cells.Add(headerCell);
       rowHeader.Visible
= true;

      
//添加到 GridView1
       GridView1.Controls[0].Controls.AddAt(0, rowHeader);
     }
   }

   protected
void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
   {
    
if (e.Row.RowType == DataControlRowType.Header)
     {
       e.Row.Attributes.Add(
"style", "background:#9999FF;color:#FFFFFF;font-size:14px");
     }
    
else
     {
       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
="600px" BackColor="#000000" BorderWidth="0" OnRowDataBound="GridView1_RowDataBound"
       OnRowCreated
="GridView1_RowCreated">
    
</asp:GridView>
  
</form>
</body>
</html>


复制链接 网友评论 收藏本文 关闭此页
上一条: .net开发技巧篇一  下一条: GridView固定表头问题
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
一个关于天气预报的WebService【C…
VS2010最大的新特点是并行编程的进…
TextBox控件:asp.net中如何为密码…
Web服务调用实例:实现天气预报的…
ASP.NET程序员面试试题(130道题)
ASP.NET教程:调用WebService的源码…
网站开发全程设计
据说这套.net面试题很多网络公司都…
考考你:C#常见题型及部分答案
原创:.net读取数据库sql2000
伪静态URL重写配置
配置web.config代码asp.net3.5个性…
使用线程池提高性能 Socket网络编…
ASP.NET(C#)GridView表头的增加…
如何找到正确的学习方向【.NET版】…
  最近更新
C#修改注册表demo
一个获取内容中的图片地址的方法
ASP.NET 4.0尚未在 Web 服务器上注…
四大作用域:application,session…
ConfigurationManager不存在的解决…
vs2012_vs2013_vs2015没有Web Dep…
vs2015禁用解决方案中单击打开文件…
微软为Visual Studio 2015新增安卓…
C#如何实现搜索引擎网络爬虫程序
C#中正则表达式的用法
用C#抓取需要登录的页面数据
VS2015新功能
VS2015安装图解教程
vs2015新功能介绍
vs2015安装图解

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3