2

データ コントロールから生成された ADF テーブルを取得しました。しかし、バッキング Bean のすべてのセルのスタイルを変更する必要があります。Google で役に立つ情報が見つからないので、役に立つ情報を教えていただければ幸いです。

4

3 に答える 3

2

もう少し具体的に教えていただけますか?どの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} として計算されたスタイル クラスにアクセスできるようになりました。これにより、列の各セルに対してメソッドが呼び出されます。

于 2012-07-16T17:01:30.780 に答える
2

フィールドの inlineStyle で条件付き EL を使用して、値に基づいてスタイルを設定します。#{binding.value > 1000 のようなものですか? 'font=太字' : 'font=レギュラー'}

于 2012-07-18T22:31:47.063 に答える
0

前の回答に+1。セルの色を変更する方法は、ユースケースに大きく依存することに注意してください。ユース ケースで動的なアドホック カラー コーディングが必要な場合、企業のブランドを実装するためにカラー コーディングを変更する必要があるかのように、答えは異なります。

フランク

于 2012-07-17T06:22:39.390 に答える