我真的想不出除了 javascript 之外的其他解决方案。sql中可能使用了滞后,但仅用于确定行颜色应更改的位置。您可以在列的 html 表达式中使用列的值并将其放入一个类中,但您仍然需要使用 javascript 对其进行迭代。因此,仅使用 javascript 似乎不那么繁琐。
内联 CSS:
table.report-standard tr.normalRow td{
background-color: green;
}
table.report-standard tr.altRow td{
background-color: red;
}
这将覆盖默认样式,但您需要根据需要对其进行调整。例如,行的 :hover 上的颜色变化。我更喜欢通过分配类来控制样式,然后在 css 中定义规则,而不是通过 javascript 直接分配 css(这会将它放在样式标签中,呃)。
- 动态操作:更改行颜色
- 刷新后,地区,产品报告
真正的行动:执行 javascript 代码,检查页面加载时触发
$('td[headers="PRODUCT"]', this.triggeringElement).each(function(){
var lCurrRow = $(this).closest('tr'),
lPrevRow = lCurrRow.prev(),
lPrevVal = lPrevRow.find('td[headers="PRODUCT"]').text();
console.log(lPrevVal + ' - ' + $(this).text());
//if value on previous row differs from the that on the current row
//then change the class
//if the value didnt change, then use the same class as the previous row
if ( lPrevVal != $(this).text() ){
if ( lPrevRow.hasClass('normalRow') ){
lCurrRow.addClass('altRow');
} else {
lCurrRow.addClass('normalRow');
};
} else {
if ( lPrevRow.hasClass('normalRow') ){
lCurrRow.addClass('normalRow');
} else {
lCurrRow.addClass('altRow');
};
};
})
在 apex.oracle.com 上检查您的解决方案,我在那里实现了它。