本当に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 でソリューションを確認してください。そこに実装しました。