`
devgis
  • 浏览: 139344 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

动态创建DataTable,GridView创建多表头,表头跨行或跨列合并,创建计算列及列内容自适应等

 
阅读更多
  1. protectedvoidPage_Load(objectsender,EventArgse)
  2. {
  3. if(!IsPostBack)
  4. {
  5. GridView1.DataSource=FormatDT();
  6. GridView1.DataBind();
  7. }
  8. }
  9. protectedvoidGridView1_RowCreated(objectsender,GridViewRowEventArgse)
  10. {
  11. switch(e.Row.RowType)
  12. {
  13. //页头
  14. caseDataControlRowType.Header:
  15. //第一行表头
  16. TableCellCollectiontcHeader=e.Row.Cells;
  17. tcHeader.Clear();
  18. tcHeader.Add(newTableHeaderCell());
  19. tcHeader[0].Attributes.Add("bgcolor","#8E8E8E");
  20. tcHeader[0].Attributes.Add("rowspan","0");//跨Row
  21. tcHeader[0].Attributes.Add("colspan","9");//跨Column
  22. tcHeader[0].Text="全部信息</tr><tr>";
  23. //第二行表头
  24. tcHeader.Add(newTableHeaderCell());
  25. tcHeader[1].Attributes.Add("bgcolor","#008A23");
  26. tcHeader[1].Text="身份证号码";
  27. tcHeader.Add(newTableHeaderCell());
  28. tcHeader[2].Text="基本信息";
  29. tcHeader[2].Attributes.Add("bgcolor","#005EBB");
  30. tcHeader[2].Attributes.Add("colspan","3");
  31. tcHeader.Add(newTableHeaderCell());
  32. tcHeader[3].Text="福利";
  33. tcHeader[3].Attributes.Add("bgcolor","#008A23");
  34. tcHeader[3].Attributes.Add("colspan","2");
  35. tcHeader.Add(newTableHeaderCell());
  36. tcHeader[4].Text="应发合计";
  37. tcHeader[4].Attributes.Add("bgcolor","#008A23");
  38. tcHeader.Add(newTableHeaderCell());
  39. tcHeader[5].Text="联系方式</tr><tr>";
  40. tcHeader[5].Attributes.Add("bgcolor","#005EBB");
  41. tcHeader[5].Attributes.Add("colspan","2");
  42. //第三行表头
  43. tcHeader.Add(newTableHeaderCell());
  44. tcHeader[6].Text="身份证号码";
  45. tcHeader.Add(newTableHeaderCell());
  46. tcHeader[7].Text="姓名";
  47. tcHeader.Add(newTableHeaderCell());
  48. tcHeader[8].Text="出生日期";
  49. tcHeader.Add(newTableHeaderCell());
  50. tcHeader[9].Text="性别";
  51. tcHeader.Add(newTableHeaderCell());
  52. tcHeader[10].Text="基本工资";
  53. tcHeader.Add(newTableHeaderCell());
  54. tcHeader[11].Text="奖金";
  55. tcHeader.Add(newTableHeaderCell());
  56. tcHeader[12].Text="应发合计";
  57. tcHeader.Add(newTableHeaderCell());
  58. tcHeader[13].Text="家庭住址";
  59. tcHeader.Add(newTableHeaderCell());
  60. tcHeader[14].Text="邮政编码";
  61. break;
  62. //数据行内容自适应不换行
  63. caseDataControlRowType.DataRow:
  64. TableCellCollectioncells1=e.Row.Cells;
  65. for(inti=0;i<cells1.Count;i++)
  66. {
  67. cells1[i].Wrap=false;
  68. }
  69. break;
  70. }
  71. }
  72. //创建DataTable
  73. protectedDataTableCreateDT()
  74. {
  75. DataTabletblDatas=newDataTable("Datas");
  76. //序号列
  77. //tblDatas.Columns.Add("ID",Type.GetType("System.Int32"));
  78. //tblDatas.Columns[0].AutoIncrement=true;
  79. //tblDatas.Columns[0].AutoIncrementSeed=1;
  80. //tblDatas.Columns[0].AutoIncrementStep=1;
  81. //数据列
  82. tblDatas.Columns.Add("身份证号码",Type.GetType("System.String"));
  83. tblDatas.Columns.Add("姓名",Type.GetType("System.String"));
  84. tblDatas.Columns.Add("出生日期",Type.GetType("System.String"));
  85. tblDatas.Columns.Add("性别",Type.GetType("System.String"));
  86. tblDatas.Columns.Add("基本工资",Type.GetType("System.Decimal"));
  87. tblDatas.Columns.Add("奖金",Type.GetType("System.Decimal"));
  88. //统计列开始
  89. tblDatas.Columns.Add("应发合计",Type.GetType("System.String"),"基本工资+奖金");
  90. //统计列结束
  91. tblDatas.Columns.Add("家庭住址",Type.GetType("System.String"));
  92. tblDatas.Columns.Add("邮政编码",Type.GetType("System.String"));
  93. tblDatas.Rows.Add(newobject[]{null,"张三","1982","0",3000,1000,null,"深圳市","518000"});
  94. tblDatas.Rows.Add(newobject[]{null,"李四","1983","1",3500,1200,null,"深圳市","518000"});
  95. tblDatas.Rows.Add(newobject[]{null,"王五","1984","1",4000,1300,null,"深圳市","518000"});
  96. tblDatas.Rows.Add(newobject[]{null,"赵六","1985","0",5000,1400,null,"深圳市","518000"});
  97. tblDatas.Rows.Add(newobject[]{null,"牛七","1986","1",6000,1500,null,"深圳市","518000"});
  98. returntblDatas;
  99. }
  100. //转换DataTable中的数据用于逻辑处理相应的数据显示
  101. protectedDataTableFormatDT()
  102. {
  103. DataTabledt1=CreateDT();
  104. //容错处理用于不确定自动产生的列
  105. if(dt1.Columns.Contains("性别"))
  106. {
  107. foreach(DataRowdrindt1.Rows)
  108. {
  109. dr["性别"]=(dr["性别"].ToString()=="0")?"女":"男";
  110. }
  111. }
  112. returndt1;
  113. }
分享到:
评论

相关推荐

    GridView动态创建列头丶自定义多行合并表头

    在这个主题中,“GridView动态创建列头”和“自定义多行合并表头”是两个关键知识点,下面将详细阐述这两个概念。 一、GridView动态创建列头 在许多情况下,数据源的结构可能在运行时才能确定,这时就需要动态创建...

    GridView固定表头和列 实例(GridView冻结表头和列)

    这里的关键在于创建两个具有相同数据的GridView,一个用于显示表头和要冻结的列,另一个显示剩余的列。在HTML输出中,确保两个GridView的布局使冻结的部分位于非冻结部分之上。 在ASP.NET后台代码中,可以动态创建...

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

    在ASP.NET 2.0中,GridView控件是用于显示数据集或数据源的常用组件,通常用于创建动态数据驱动的Web应用程序。在某些情况下,为了提高用户体验或者更好地呈现数据,我们可能需要合并GridView的表头单元格,比如将多...

    GridView 合并表头,底部新增一行总计汇总

    GridView由行和列组成,每一行可以包含数据行或分组行,每一列通常对应数据源中的一个字段。表头(HeaderRow)是GridView的第一行,用于显示列名。在需要合并表头的情况下,通常是由于数据有层次关系,比如有父类和...

    wpf 动态合并datagrid表头单元格

    然而,在某些情况下,我们可能需要动态地合并Datagrid的表头单元格,以达到更清晰、更具有组织性的数据展示效果。这通常发生在数据有层次结构或需要对某一列进行分类时。本篇将详细讲解如何在WPF中实现这个功能。 ...

    Flutter实现Table跨行跨列

    Flutter实现Table跨行跨列

    GridView增强控件,在.netGridview 基础上增加了合计,合并表头等功能

    在标准的GridView控件基础上,开发者经常需要实现一些高级功能,比如行合计、表头合并等,以提升用户界面的交互性和信息的可读性。这篇内容将深入探讨在ASP.NET环境中,如何对GridView控件进行增强,实现这些功能。 ...

    ASP.NET 2.0中GridView无限层复杂表头的实现

    这个事件在GridView控件创建每一行时触发,可以用来自定义行的样式和内容。在这个事件中,我们可以创建一个新的GridViewRow对象,设置其样式和内容,然后将其添加到GridView控件中。 在我们的示例代码中,我们使用...

    .net导出excel多表头设置

    在Excel中,多表头通常指的是在一个或多个单元格内合并的标题,用于清晰地分隔和组织数据。这可能包括主表头、子表头和层次表头等。在.NET编程中,我们可以使用各种库来实现这个功能,例如EPPlus、NPOI或 ClosedXML...

    GridView动态添加列的方法及代码

    在动态添加列前,我们需要首先创建一个数据源,这可以是任何支持的数据提供者,如SQLDataSource、ObjectDataSource等,或者直接使用数据集合如DataTable。 2. **初始化GridView** 在Page_Init或Page_Load事件中,...

    DataTable动态行转列

    DataTable动态行转列类,设置需要装置的列名和数据列后,可以动态将DataTable的列进行转置。

    jquery datatable 单元格合并

    本篇将详细介绍如何使用jQuery DataTables结合JavaScript来实现相同内容单元格的动态合并。 首先,我们需要理解jQuery DataTables的基本用法。它基于jQuery库,可以通过简单的配置和API来创建高度交互的表格。要...

    DataTable合并重复行(解决方案)

    DataTable合并重复行是指在数据处理过程中,需要将两个或多个DataTable合并成一个DataTable,但是在合并过程中可能会出现重复行的问题。这种情况下,需要使用特殊的方法来去除重复行,否则可能会出现数据不一致的...

    c# winform datagridview 多行表头

    以上代码只是一个基本的示例,实际应用中可能需要根据具体需求进行调整,例如处理文本溢出、调整对齐方式或增加鼠标悬浮效果等。总的来说,实现`datagridview 多行表头`需要深入理解`DataGridView`的绘图机制和事件...

    datatable的固定列插件

    `Datatable`是一款非常流行的JavaScript库,用于在网页上展示和操作动态数据表格。它的功能强大,可扩展性优秀,而“固定列插件”则是`Datatable`的一个重要组件,用于在滚动时保持表格的列头固定,提高用户在大数据...

    DataGridView多表头多列头

    在`DataGridView`中,我们可以创建多个行和列的表头,使得数据的组织更加清晰,帮助用户更好地理解和操作数据。 二、设置多表头 在`DataGridView`中,可以通过设置`ColumnHeadersDefaultCellStyle`属性来创建多行的...

    动态添加datatable

    通过以上介绍,我们了解了如何在C#中动态创建`DataTable`,包括创建`DataTable`实例、添加列和行数据的方法。这对于需要在运行时根据业务逻辑构建数据结构的应用程序来说是非常有用的。希望本文能帮助读者更好地理解...

    Txt、Exl自适应导入GridView

    2. **数据转换**:读取的数据通常是原始格式,需要转化为适合GridView显示的数据结构,例如DataTable或List&lt;自定义对象&gt;。TXT文件可能需要进行列分隔处理,而Excel数据则可以直接映射到表格结构。 3. **自适应处理*...

    gridview多表头

    具体到实现多表头,开发者可能需要使用GridView的HeadersRow、HeaderStyle、.RowStyle等属性,以及RowDataBound事件来动态生成表头。同时,可能还需要使用TemplateField或者BoundField来定义表格的列。在.NET中,...

    实现GridView或DataTable倒出Excel的两种方法

    在.NET开发环境中,将GridView或DataTable中的数据导出到Excel是一种常见的需求,这通常用于数据备份、数据分析或者用户导出报告等场景。本篇将详细讲解两种实现方式,并结合提供的文件`ToExc.aspx`和`ToExc.aspx.cs...

Global site tag (gtag.js) - Google Analytics