Webix Datatable cssFormat 不打印正确的颜色
Webix Datatable cssFormat not printing correct color
我用一些列配置了一个 webix 数据表,每个列有 属性:
cssFormat: colorByProd
哪里
function colorByProd(value, config) {
var n = 0;
var timeToCompare = 0;
for (var i = 0; i < 8; i++) {
if (value === config[i]) {
var time = $$("detalleTurnoGrid").getColumnConfig(i).header[0];
var n = parseInt($scope.fecha.substring(11, 13));
var timeToCompare = parseInt(time.text.substring(0, 3));
if (timeToCompare < n) {
if (value < 31 && value >= 29)
return { "color": "#F7D358" };
if (value < 29)
return { "color": "red" };
if (value >= 31)
return { "color": "green" };
} else {
return { "color": "black" };
}
return value;
}
}
}
因此对于每一列,如果当前小时小于下一个小时,则该值应为黑色,例如:
Correct Table --> 当前时间 == 11
如果现在是:11:00,11:00列和后面的列将是黑色的,但是10:00列将是彩色的(绿-黄-红),这几乎完美运行,但是,我有错误吗?
例如:如果值编号存在于其他前一小时列中,则 11:00 列值也会更改颜色,前提是该值存在于前一列中:
Wrong Table
感谢您的宝贵时间
看来你的代码有点过于复杂,你不需要在 colorByProd 中使用循环,因为代码总是 returns 单个单元格的颜色
function colorByProd(value, config) {
var n = 11;
var timeToCompare = parseInt(this.header[0].text.substring(0, 2));
if (timeToCompare < n) {
if (value < 31 && value >= 29)
return { "color": "#F7D358" };
if (value < 29)
return { "color": "red" };
if (value >= 31)
return { "color": "green" };
} else {
return { "color": "black" };
}
return value;
}
我用一些列配置了一个 webix 数据表,每个列有 属性:
cssFormat: colorByProd
哪里
function colorByProd(value, config) {
var n = 0;
var timeToCompare = 0;
for (var i = 0; i < 8; i++) {
if (value === config[i]) {
var time = $$("detalleTurnoGrid").getColumnConfig(i).header[0];
var n = parseInt($scope.fecha.substring(11, 13));
var timeToCompare = parseInt(time.text.substring(0, 3));
if (timeToCompare < n) {
if (value < 31 && value >= 29)
return { "color": "#F7D358" };
if (value < 29)
return { "color": "red" };
if (value >= 31)
return { "color": "green" };
} else {
return { "color": "black" };
}
return value;
}
}
}
因此对于每一列,如果当前小时小于下一个小时,则该值应为黑色,例如: Correct Table --> 当前时间 == 11
如果现在是:11:00,11:00列和后面的列将是黑色的,但是10:00列将是彩色的(绿-黄-红),这几乎完美运行,但是,我有错误吗?
例如:如果值编号存在于其他前一小时列中,则 11:00 列值也会更改颜色,前提是该值存在于前一列中:
Wrong Table
感谢您的宝贵时间
看来你的代码有点过于复杂,你不需要在 colorByProd 中使用循环,因为代码总是 returns 单个单元格的颜色
function colorByProd(value, config) {
var n = 11;
var timeToCompare = parseInt(this.header[0].text.substring(0, 2));
if (timeToCompare < n) {
if (value < 31 && value >= 29)
return { "color": "#F7D358" };
if (value < 29)
return { "color": "red" };
if (value >= 31)
return { "color": "green" };
} else {
return { "color": "black" };
}
return value;
}