`
devgis
  • 浏览: 133602 次
  • 性别: 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. }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics