通过比较两列谷歌可视化DataTable

时间:2016-09-13 20:10:06

标签: javascript datatable google-visualization google-datatable

我使用的是google.visualization.DataTable,我有两个相关的列,我们称之为colSmall和colLarge。如果colSmall在任何给定行中大于colLarge,那么我想将该行的背景颜色设置为红色。

我最接近的是使用google.visualization.ColorFormat()。我能够创建一个格式化程序和addRange,我可以使用它来对特定值进行硬编码,这样如果colSmall超过该值,它将为红色(见下文)。

var formatter = new google.visualization.ColorFormat();
formatter.addRange('100', null, 'black', 'red'); // anything greater than 100 will be red (the quotes are because these are string values)
formatter.format(data, 7); // colSmall is index 7

我一直无法找到让它查看此行的另一列的方法。我遇到的另一个问题是,这只会使单元格变红而不是整行。

1 个答案:

答案 0 :(得分:0)

我找到了一种黑客的做法,但我仍然会更喜欢更好的东西。

我可以将每行插入表中并在那里格式化,而不是构建数据然后将其全部添加到表中。

然后,对于任何给定的行,我可以执行以下操作:

                    var rowIndex = data.addRow(val);
                    if (colSmall > colLarge) {
                      data.setProperties(rowIndex, 2, {style: 'background-color:red'});
                    }

对于该行中的每一列(而不仅仅是第2列)。

我希望能够使用setProperty,或者更好的是setRowProperty,但每次尝试这些方法时,它都无法正常工作,所以我现在就解决这个问题。