jqgrid 自定义格式化程序也已申请摘要
jqgrid custom formatter getting applied for summary also
我正在使用 jqGrid v5.0.2 来实现自定义格式化程序。我在列中启用了摘要。如果列值大于 40,我想以红色显示文本。我已经针对我的问题实施了 Oleg 的解决方案。格式有效,但它 也被应用到摘要行 。例如:
Resource Week1
-------- -----
Mr.X 45
-Task1 25
-Task2 20
1) 在上面的例子中,我只希望值为 20 和 25 的单元格是红色的(如果它们分别大于 40),但是分组的单元格 45 也显示在 red.I 中想要分组仅当高于 80(40+40) 时,单元格才为红色。关于如何实现我想要的结果有什么建议吗?
我的代码:
{
name: "FirstWeek",
editable: true,
sortable: false,
formatter: function (cellvalue) {
var color;
var val = Number(cellvalue);
if (val > 40) {
color = 'red';
}
var cellHtml = "<span style='color:" + color + "' originalValue='" +
val + "'>" + val + "</span>";
return cellHtml;
},
unformatter: function(cellValue, options, cellObject) {
return $(cellObject.html()).attr("originalValue");
},
summaryTpl: "<b>{0}</b>",
summaryType: "sum",
editrules: { number: true, minValue: 0, maxValue: 40 }
}
2) 在内联编辑自定义格式的单元格时,我在单元格 (UI) 中得到 <span class="cellWithoutBackground" style="color:undefined;">25</span>
。我已经使用了 unformatter 函数 also.That 似乎不起作用。帮助表示赞赏。
我建议您删除 formatter
和 unformatter
回调并在列中使用 cellattr
回调。它可以这样定义:
cellattr: function(rowId, val, rawObject) {
if (Number(val) > 40) {
return " style='color: red'";
}
}
或类似
cellattr: function(rowId, val, rawObject) {
if (Number(val) > 40) {
return " class='my-text-color'";
}
}
在列的特定单元格(<td>
元素)上设置 class my-text-color
。如果您使用 class 属性,那么您应该定义额外的 CSS 规则,例如
.my-text-color {
color: red;
}
我正在使用 jqGrid v5.0.2 来实现自定义格式化程序。我在列中启用了摘要。如果列值大于 40,我想以红色显示文本。我已经针对我的问题实施了 Oleg 的解决方案。格式有效,但它 也被应用到摘要行 。例如:
Resource Week1
-------- -----
Mr.X 45
-Task1 25
-Task2 20
1) 在上面的例子中,我只希望值为 20 和 25 的单元格是红色的(如果它们分别大于 40),但是分组的单元格 45 也显示在 red.I 中想要分组仅当高于 80(40+40) 时,单元格才为红色。关于如何实现我想要的结果有什么建议吗?
我的代码:
{
name: "FirstWeek",
editable: true,
sortable: false,
formatter: function (cellvalue) {
var color;
var val = Number(cellvalue);
if (val > 40) {
color = 'red';
}
var cellHtml = "<span style='color:" + color + "' originalValue='" +
val + "'>" + val + "</span>";
return cellHtml;
},
unformatter: function(cellValue, options, cellObject) {
return $(cellObject.html()).attr("originalValue");
},
summaryTpl: "<b>{0}</b>",
summaryType: "sum",
editrules: { number: true, minValue: 0, maxValue: 40 }
}
2) 在内联编辑自定义格式的单元格时,我在单元格 (UI) 中得到 <span class="cellWithoutBackground" style="color:undefined;">25</span>
。我已经使用了 unformatter 函数 also.That 似乎不起作用。帮助表示赞赏。
我建议您删除 formatter
和 unformatter
回调并在列中使用 cellattr
回调。它可以这样定义:
cellattr: function(rowId, val, rawObject) {
if (Number(val) > 40) {
return " style='color: red'";
}
}
或类似
cellattr: function(rowId, val, rawObject) {
if (Number(val) > 40) {
return " class='my-text-color'";
}
}
在列的特定单元格(<td>
元素)上设置 class my-text-color
。如果您使用 class 属性,那么您应该定义额外的 CSS 规则,例如
.my-text-color {
color: red;
}