Gridview动态汇总

最近在做项目资金统计,需要对GridView的表头进行重新构建,如多行表头,尾行汇总等。先看下展示效果。

这里我们可以在GridView控件的RowCreated事件中对数据行的格式进行处理。

  1. protected void sgvCapitalDetailList_RowCreated(object sender, GridViewRowEventArgs e)  
  2.        {  
  3.            if (e.Row.RowType == DataControlRowType.Header)  
  4.            {  
  5.                RebuildHeader(e.Row.Cells);  
  6.            }  
  7.            if (e.Row.RowType == DataControlRowType.Footer)  
  8.            {  
  9.               ReBuildFooter(e.Row.Cells);  
  10.            }  
  11.        }  
  1. /// <summary>  
  2. /// 重建表尾  
  3. /// </summary>  
  4. /// <param name="tcFooter">表尾单元格集合</param>  
  5. void ReBuildFooter(TableCellCollection tcFooter)  
  6. {  
  7.     tcFooter.Clear();  
  8.     GridViewRow rowFooter = new GridViewRow(0, 0, DataControlRowType.Footer, DataControlRowState.Normal);  
  9.     rowFooter.BorderWidth = 1;  
  10.     rowFooter.Attributes.Add("class""yy_sgv_fixRow1");  
  11.     rowFooter.Attributes.Add("style""z-index:1000;background-color:#eafbc9;;font-family:宋体;font-weight:bold;border:1px #719626 solid;");  
  12.   
  13.     TableCell footerCell = new TableCell();  
  14.     footerCell.Text = "总计";  
  15.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  16.     footerCell.Wrap = false;  
  17.     rowFooter.Cells.Add(footerCell);  
  18.   
  19.     footerCell = new TableCell();  
  20.     footerCell.Text = allOrganCaptital.ToString();  
  21.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  22.     footerCell.Wrap = false;  
  23.     rowFooter.Cells.Add(footerCell);  
  24.   
  25.     footerCell = new TableCell();  
  26.     footerCell.Text = allOrganJGCaptital.ToString();  
  27.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  28.     footerCell.Wrap = false;  
  29.     rowFooter.Cells.Add(footerCell);  
  30.   
  31.     footerCell = new TableCell();  
  32.     footerCell.Text = allZXJG.ToString();  
  33.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  34.     footerCell.Wrap = false;  
  35.     rowFooter.Cells.Add(footerCell);  
  36.   
  37.     footerCell = new TableCell();  
  38.     footerCell.Text = allZDJG.ToString();  
  39.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  40.     footerCell.Wrap = false;  
  41.     rowFooter.Cells.Add(footerCell);  
  42.   
  43.     footerCell = new TableCell();  
  44.     footerCell.Text = allYBJG.ToString();  
  45.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  46.     footerCell.Wrap = false;  
  47.     rowFooter.Cells.Add(footerCell);  
  48.   
  49.     footerCell = new TableCell();  
  50.     footerCell.Text = allZXZW.ToString();  
  51.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  52.     footerCell.Wrap = false;  
  53.     rowFooter.Cells.Add(footerCell);  
  54.   
  55.     footerCell = new TableCell();  
  56.     footerCell.Text = allOrganXLCaptital.ToString();  
  57.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  58.     footerCell.Wrap = false;  
  59.     rowFooter.Cells.Add(footerCell);  
  60.   
  61.     footerCell = new TableCell();  
  62.     footerCell.Text = allAJJX.ToString();  
  63.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  64.     footerCell.Wrap = false;  
  65.     rowFooter.Cells.Add(footerCell);  
  66.   
  67.     footerCell = new TableCell();  
  68.     footerCell.Text = allBCJJX.ToString();  
  69.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  70.     footerCell.Wrap = false;  
  71.     rowFooter.Cells.Add(footerCell);  
  72.   
  73.     footerCell = new TableCell();  
  74.     footerCell.Text = allRCWH.ToString();  
  75.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  76.     footerCell.Wrap = false;  
  77.     rowFooter.Cells.Add(footerCell);  
  78.   
  79.     footerCell = new TableCell();  
  80.     footerCell.Text = allZDFB.ToString();  
  81.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  82.     footerCell.Wrap = false;  
  83.     rowFooter.Cells.Add(footerCell);  
  84.   
  85.     footerCell = new TableCell();  
  86.     footerCell.Text = allYBFB.ToString();  
  87.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  88.     footerCell.Wrap = false;  
  89.     rowFooter.Cells.Add(footerCell);  
  90.   
  91.     footerCell = new TableCell();  
  92.     footerCell.Text = allKJXM.ToString();  
  93.     footerCell.HorizontalAlign = HorizontalAlign.Center;  
  94.     footerCell.Wrap = false;  
  95.     rowFooter.Cells.Add(footerCell);  
  96.   
  97.     sgvCapitalDetailList.Controls[0].Controls.AddAt(rowSum + 3, rowFooter);  
  98. }  
  1. /// <summary>  
  2. /// 重建表头  
  3. /// </summary>  
  4. /// <param name="tcHeader">表头单元格</param>  
  5. void RebuildHeader(TableCellCollection tcHeader)  
  6. {  
  7.     tcHeader.Clear();  
  8.   
  9.     GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);            
  10.     rowHeader.Attributes.Add("class""yy_sgv_fixRow1");  
  11.     rowHeader.Attributes.Add("style""z-index:1000;background-color:#d2e8ff;color:#2965a2;font-family:宋体;font-weight:bold;border:1px solid;");  
  12.     rowHeader.BorderWidth = 1;  
  13.   
  14.     TableCell headerCell = new TableCell();  
  15.     headerCell.Text = "企业名称";  
  16.     headerCell.RowSpan = 2;  
  17.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  18.     headerCell.Attributes.Add("style""vertical-align:middle;"); //合并后的单元格设置其垂直居中  
  19.     headerCell.Wrap = false;  
  20.     rowHeader.Cells.Add(headerCell);   
  21.   
  22.     headerCell = new TableCell();  
  23.     headerCell.Text = "合计";  
  24.     headerCell.RowSpan = 2;  
  25.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  26.     headerCell.Attributes.Add("style""vertical-align:middle;");  
  27.     headerCell.Wrap = false;  
  28.     rowHeader.Cells.Add(headerCell);  
  29.   
  30.     headerCell = new TableCell();  
  31.     headerCell.Text = "技改";  
  32.     headerCell.ColumnSpan=5;  
  33.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  34.     headerCell.Wrap = false;  
  35.     rowHeader.Cells.Add(headerCell);  
  36.   
  37.     headerCell = new TableCell();  
  38.     headerCell.Text = "修理";  
  39.     headerCell.ColumnSpan = 7;  
  40.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  41.     headerCell.Wrap = false;  
  42.     rowHeader.Cells.Add(headerCell);  
  43.   
  44.     GridViewRow secondRowHeader = new GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Normal);  
  45.     secondRowHeader.Attributes.Add("class""yy_sgv_fixRow1");  
  46.     secondRowHeader.Attributes.Add("style""z-index:1000;background-color:#d2e8ff;color:#2965a2;font-family:宋体;font-weight:bold;");  
  47.     secondRowHeader.BorderWidth = 1;  
  48.   
  49.     headerCell = new TableCell();  
  50.     headerCell.Text = "小计";  
  51.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  52.     headerCell.Wrap = false;  
  53.     secondRowHeader.Cells.Add(headerCell);  
  54.   
  55.     headerCell = new TableCell();  
  56.     headerCell.Text = "专项技改";  
  57.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  58.     headerCell.Wrap = false;  
  59.     secondRowHeader.Cells.Add(headerCell);  
  60.   
  61.     headerCell = new TableCell();  
  62.     headerCell.Text = "重点技改";  
  63.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  64.     headerCell.Wrap = false;  
  65.     secondRowHeader.Cells.Add(headerCell);  
  66.   
  67.     headerCell = new TableCell();  
  68.     headerCell.Text = "一般技改";  
  69.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  70.     headerCell.Wrap = false;  
  71.     secondRowHeader.Cells.Add(headerCell);  
  72.   
  73.     headerCell = new TableCell();  
  74.     headerCell.Text = "自行掌握";  
  75.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  76.     headerCell.Wrap = false;  
  77.     secondRowHeader.Cells.Add(headerCell);  
  78.   
  79.     headerCell = new TableCell();  
  80.     headerCell.Text = "小计";  
  81.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  82.     headerCell.Wrap = false;  
  83.     secondRowHeader.Cells.Add(headerCell);  
  84.   
  85.     headerCell = new TableCell();  
  86.     headerCell.Text = "A级检修";  
  87.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  88.     headerCell.Wrap = false;  
  89.     secondRowHeader.Cells.Add(headerCell);  
  90.   
  91.     headerCell = new TableCell();  
  92.     headerCell.Text = "BC级检修";  
  93.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  94.     headerCell.Wrap = false;  
  95.     secondRowHeader.Cells.Add(headerCell);  
  96.   
  97.     headerCell = new TableCell();  
  98.     headerCell.Text = "日常维护";  
  99.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  100.     headerCell.Wrap = false;  
  101.     secondRowHeader.Cells.Add(headerCell);  
  102.   
  103.     headerCell = new TableCell();  
  104.     headerCell.Text = "重大非标";  
  105.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  106.     headerCell.Wrap = false;  
  107.     secondRowHeader.Cells.Add(headerCell);  
  108.   
  109.     headerCell = new TableCell();  
  110.     headerCell.Text = "一般非标(<30万)";  
  111.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  112.     headerCell.Wrap = false;  
  113.     secondRowHeader.Cells.Add(headerCell);  
  114.   
  115.     headerCell = new TableCell();  
  116.     headerCell.Text = "科技项目";  
  117.     headerCell.HorizontalAlign = HorizontalAlign.Center;  
  118.     headerCell.Wrap = false;  
  119.     secondRowHeader.Cells.Add(headerCell);  
  120.   
  121.     sgvCapitalDetailList.Controls[0].Controls.AddAt(0, rowHeader);  
  122.     sgvCapitalDetailList.Controls[0].Controls.AddAt(1, secondRowHeader);  
  123. }  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值