如何在 igGrid 2013.2 中格式化汇总结果的小时数?
How to format hours in grouping summary result in igGrid 2013.2?
我有带分组的网格,我按一列分组,然后像这样在另一列上制作小时摘要:
name: "GroupBy",
type: "local",
columnSettings: [
{
columnKey: "codeName",
isGroupBy: true,
},
{
columnKey: "hour",
isGroupBy: false,
summaries: [
{
summaryFunction: "custom",
text: "Hours :",
customSummary: function (valuesList) {
var sumOfHours = 0.0;
var sumOfMinutes = 0.0;
for (i = 0; i < valuesList.length; i++) {
var split = valuesList[i].split(':');
sumOfHours += parseInt(split[0]);
sumOfMinutes += parseInt(split[1]);
}
sumOfHours += parseInt(sumOfMinutes / 60);
var minutesLeft = sumOfMinutes % 60;
return sumOfHours + ":" + minutesLeft;
}
}
]
}
],
summarySettings: {
//summaryFormat: "HH:MM" // What should I write here to get proper formatiing?
}
现在的问题是每当我得到:
- 36 小时它显示 360.00 而不是 36:00
- 165 小时显示 1,650.00 而不是 165:00
- 8 小时 15 分钟显示 8:15
的 815.00
- 34 小时 15 分钟显示为 3,415.00 而不是 34:15
我在文档中找不到如何正确显示它的任何地方。有人可以帮忙吗?
igGridGroupBy 汇总函数应始终 return 数字类型,这不是你的情况。这就是您看到这种行为的原因。
您可以做的是覆盖 Ignite UI 中使用的 $.ig.formatter 函数(在初始化 igGrid 之前)和用于格式化值的 GroupBy 功能并注入您的逻辑。
这是一个例子:
var origFormatter = $.ig.formatter;
$.ig.formatter = function (val, type, format) {
if (format === "myFormat") {
return val;
}
return origFormatter.apply(arguments);
}
// Initialize igGrid here
然后设置 summarySettings.summaryFormat = "myFormat" 以便您的逻辑启动。
我有带分组的网格,我按一列分组,然后像这样在另一列上制作小时摘要:
name: "GroupBy",
type: "local",
columnSettings: [
{
columnKey: "codeName",
isGroupBy: true,
},
{
columnKey: "hour",
isGroupBy: false,
summaries: [
{
summaryFunction: "custom",
text: "Hours :",
customSummary: function (valuesList) {
var sumOfHours = 0.0;
var sumOfMinutes = 0.0;
for (i = 0; i < valuesList.length; i++) {
var split = valuesList[i].split(':');
sumOfHours += parseInt(split[0]);
sumOfMinutes += parseInt(split[1]);
}
sumOfHours += parseInt(sumOfMinutes / 60);
var minutesLeft = sumOfMinutes % 60;
return sumOfHours + ":" + minutesLeft;
}
}
]
}
],
summarySettings: {
//summaryFormat: "HH:MM" // What should I write here to get proper formatiing?
}
现在的问题是每当我得到:
- 36 小时它显示 360.00 而不是 36:00
- 165 小时显示 1,650.00 而不是 165:00
- 8 小时 15 分钟显示 8:15 的 815.00
- 34 小时 15 分钟显示为 3,415.00 而不是 34:15
我在文档中找不到如何正确显示它的任何地方。有人可以帮忙吗?
igGridGroupBy 汇总函数应始终 return 数字类型,这不是你的情况。这就是您看到这种行为的原因。 您可以做的是覆盖 Ignite UI 中使用的 $.ig.formatter 函数(在初始化 igGrid 之前)和用于格式化值的 GroupBy 功能并注入您的逻辑。 这是一个例子:
var origFormatter = $.ig.formatter;
$.ig.formatter = function (val, type, format) {
if (format === "myFormat") {
return val;
}
return origFormatter.apply(arguments);
}
// Initialize igGrid here
然后设置 summarySettings.summaryFormat = "myFormat" 以便您的逻辑启动。