我正在使用jqGrid v5.0.2來實現自定義格式化程序。我在列中啓用了摘要。如果列值大於40,我希望以紅色顯示文本。我已經對我的問題實施了Oleg的解決方案。格式化工作,但它也被應用到彙總行也。例如:jqgrid自定義格式化程序正在申請摘要也
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功能。這似乎不起作用。幫助讚賞。
我不確定我是否正確理解您的要求。你使用*數據分組*,並希望阻止應用自定義格式化程序分組彙總?順便說一下格式化程序和非格式化程序似乎都是錯誤的。 unformatter回調的名字是'unformat'而不是'unformatter','$(cellObject.html())'的用法似乎也是錯誤的。我不知道Guriddo specificas,因爲我開發了jqGrid的*替代叉*:[免費jqGrid](https://github.com/free-jqgrid/jqGrid)。 – Oleg
formatter的代碼也是錯誤的,因爲如果val <= 40,'color' var保持undefined。如果我正確理解你,那麼你應該使用'cellattr'而不是自定義的格式化程序。請參閱[答案](http://stackoverflow.com/a/12180842/315935)。 – Oleg
您已經正確理解了我的要求Oleg。我使用數據分組,並希望防止應用自定義格式化程序對分組摘要! –