FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 2171|回复: 0

【新特性速递】表格多行合计支持

[复制链接]
发表于 2019-12-12 10:53:36 | 显示全部楼层 |阅读模式
FineUIPro/Mvc/Core的下个版本(v6.1.0),我们对表格控件进行了增强,可以显示多个合计行了。


先来看下显示效果:




和单合计行相比,前台代码没用任何变化,重点在后台代码,我们新增了一个SummaryDataArray属性。


上述示例的后台关键代码如下所示:
  1. private void OutputSummaryData(DataTable source)
  2. {
  3.     JArray summaryArray = new JArray();

  4.     // 分页合计
  5.     DataTable table = GetPagedDataTable(Grid1.PageIndex, Grid1.PageSize);
  6.     summaryArray.Add(CalcSummaryRow(table, "当前页合计:"));

  7.     // 全部合计
  8.     summaryArray.Add(CalcSummaryRow(DataSourceUtil.GetDataTable2(), "全部合计:"));

  9.     Grid1.SummaryDataArray = summaryArray;
  10. }

  11. private JObject CalcSummaryRow(DataTable source, string title)
  12. {
  13.     float donateTotal = 0.0f;
  14.     float feeTotal = 0.0f;
  15.     foreach (DataRow row in source.Rows)
  16.     {
  17.         donateTotal += Convert.ToInt32(row["Donate"]);
  18.         feeTotal += Convert.ToInt32(row["Fee"]);
  19.     }


  20.     JObject summary = new JObject();
  21.     summary.Add("major", title);
  22.     summary.Add("fee", feeTotal.ToString("F2"));
  23.     summary.Add("donate", donateTotal.ToString("F2"));
  24.    
  25.     return summary;
  26. }
复制代码


可以看到,我们只需新建一个 JArray 对象,需要几个合计行,就插入几条数据。



需要注意的一点,向合计行对象添加的数据中:
  1. summary.Add("donate", donateTotal.ToString("F2"));
复制代码


其中的 donate 对应的是列的 ColumnID 属性(而不是DataField属性),看下前台的声明标签(属性值是严格区分大小写的):

  1. <f:BoundField Width="100px" DataField="Donate" ColumnID="donate" HeaderText="捐赠金额" />
复制代码





官网示例已更新:



现在加入【三石和他的朋友们】星球,下载FineUIPro/Mvc/Core(基础版):https://fineui.com/fans/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-3-29 04:36 , Processed in 0.046950 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表