0

我正在使用 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

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

4

1 回答 1

0

我找到了一种 hacky 方法,但我仍然更喜欢更好的方法。

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

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

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

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

我希望能够使用 setProperty 或者更好的是 setRowProperty,但是每次我尝试这些方法中的任何一种时,它都根本不起作用,所以我现在就解决这个问题。

于 2016-09-13T23:57:14.910 回答