Javascript Webix Datatable cssFormat未打印正确的颜色
我用一些列配置了webix datatable,每个列都有以下属性:Javascript Webix Datatable cssFormat未打印正确的颜色,javascript,webix,Javascript,Webix,我用一些列配置了webix datatable,每个列都有以下属性: cssFormat: colorByProd 在哪里 函数colorByProd(值,配置){ var n=0; var-timeToCompare=0; 对于(变量i=0;i
cssFormat: colorByProd
在哪里
函数colorByProd(值,配置){
var n=0;
var-timeToCompare=0;
对于(变量i=0;i<8;i++){
如果(值===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));
如果(时间比较=29)
返回{“color”:“#F7D358”};
如果(值<29)
返回{“颜色”:“红色”};
如果(值>=31)
返回{“颜色”:“绿色”};
}否则{
返回{“color”:“black”};
}
返回值;
}
}
}
因此,对于每列,如果当前小时小于下一小时,则该值应为黑色,例如:
-->当前小时==11
如果现在是:11:00,那么11:00列和下一列将是黑色的,但是10:00列将是彩色的(绿-黄-红),这几乎可以完美地工作,但是,我有错误吗
例如:如果值编号存在于其他前一个小时列中,则11:00列的值也会改变颜色,仅当值存在于前一列中时:
感谢您的时间您的代码似乎有点过于复杂,您不需要在colorByProd内部使用循环,因为代码总是为单个单元格返回颜色
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;
}
函数colorByProd(值,配置){
var n=11;
var timeToCompare=parseInt(this.header[0].text.substring(0,2));
如果(时间比较=29)
返回{“color”:“#F7D358”};
如果(值<29)
返回{“颜色”:“红色”};
如果(值>=31)
返回{“颜色”:“绿色”};
}否则{
返回{“color”:“black”};
}
返回值;
}
检查
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;
}