我已经看到有关条件格式的大量信息,但似乎无法使其工作。我希望当它的值(这是一个日期)过去时,将单元格的字体设置为红色。
这是我现在所拥有的一般概念:
{
name: 'IsoDate', index: 'IsoDate', align: 'left', sorttype: 'date', datefmt: "m/d/Y",
formatter: function (cellvalue, options, rowobject) { var now = new Date(); if (cellvalue < now) { return '<span class="error">' + cellvalue + '</span>'; } else { cellvalue; } }
}
我似乎无法让它工作。我已经得到它来返回所有红色值或所有未定义的值。有些领域还没有日期。
我很感激任何帮助!谢谢!
更新:
这是我使用的代码,最终正在运行。我实际上是在引用日期的另一列。
cellattr: function (rowid, val, rawObject, cm, rdata) {
var idate = new Date(rawObject['IsoDate']);
return (idate < new Date()) ? ' class = "ui-state-error-text"' : ' class = "field-validation-green"';
}
答案 0 :(得分:5)
最好使用cellattr
代替custom formatter。如果您仍然可以使用formatter: "date"
style
,只需在所选的class
单元格上设置其他<td>
或ui-state-error-text
属性。例如,类{
name: "IsoDate", sorttype: "date",
formatter: "date", formatoptions: {newformat: "m/d/Y"},
cellattr: function (cellvalue) {
return (cellvalue < new Date()) ? ' class="ui-state-error-text"' : '';
}
}
似乎是我选择将单元格的字体设置为红色的好选择。所以列的定义可以是
cellvalue
我不确定您输入哪些数据以及您发布的代码是否正常工作。如果需要,您可以将上述代码更改为与您拥有的cellattr
格式相对应。
有关使用情况{{1}}的更多示例,请参阅predefined formatter,the answer,this one以及其他许多内容。
答案 1 :(得分:0)
您在条件语句中缺少return
关键字。这就是为什么你只看到“红色”的价值。
使用:
else { return cellvalue; }
而不是:
else { cellvalue; }