データ コントロールから生成された ADF テーブルを取得しました。しかし、バッキング Bean のすべてのセルのスタイルを変更する必要があります。Google で役に立つ情報が見つからないので、役に立つ情報を教えていただければ幸いです。
3 に答える
もう少し具体的に教えていただけますか?どのjdevバージョン? 各セルを変更する必要がある場合、スキンを使用しないのはなぜですか?
コメントに基づいて、jdev 11.1.2.2.0 を使用していることがわかりました。できることは、テーブルの styleClass プロパティをバッキング Bean プロパティにバインドすることです。Bean のプロパティには、getter メソッドと setter メソッドがあります。セッターメソッドでは、行から必要なすべての値を取得して計算できます。結果に基づいて、セルに適したスタイル クラスの名前を返します。アプリケーションのスキンで定義するさまざまなスタイル クラス。たとえば、スキンで次のスタイル クラスを定義するとします。
.high_value { background-color:green; }
.negative_value { background-color:red;}
そして、テーブルがあるページからアクセスするリクエストスコープのBeanで
private String styleForCell;
public String getStyleForCell()
{
// get the value of the cell
FacesContext lContext = FacesContext.getCurrentInstance();
ELContext lELContext = lContext.getELContext();
ExpressionFactory lExpressionFactory = lContext.getApplication().getExpressionFactory();
Number val;
val = (Number) lExpressionFactory.createValueExpression(lELContext, "#{row.valargument}", Object.class).getValue(lELContext);
if (val == null)
return "";
// do the calculation and return the suitable style class
int ival = val.intValue();
if (ival >= 100000 )
return "high_value";
else if (ival < 0)
return "negative_value";
else
return "";
}
public void setStyleForCell(String aStyleForCell)
{
this.styleForCell = aStyleForCell;
}
テーブル列の styleClass プロパティから #{beanname.styleForCell} として計算されたスタイル クラスにアクセスできるようになりました。これにより、列の各セルに対してメソッドが呼び出されます。
フィールドの inlineStyle で条件付き EL を使用して、値に基づいてスタイルを設定します。#{binding.value > 1000 のようなものですか? 'font=太字' : 'font=レギュラー'}
前の回答に+1。セルの色を変更する方法は、ユースケースに大きく依存することに注意してください。ユース ケースで動的なアドホック カラー コーディングが必要な場合、企業のブランドを実装するためにカラー コーディングを変更する必要があるかのように、答えは異なります。
フランク