簡體   English   中英

如何將@RowStyle 應用於 OpenXava 中的一系列行(或其他復雜條件)?

[英]How to apply a @RowStyle to a range of rows (or other complex condition) in OpenXava?

我知道使用 @RowStyle 我可以根據字段的特定值確定樣式。 但是,如果我想將前五個記錄(id >= 1 和 id <= 5)與其他記錄區分開來,我該怎么做呢?

例如,在我的例子中,一個活動實體默認以 5 個活動開始。 目標是以不同的顏色或樣式顯示前 5 行,以及用戶添加的記錄的 rest 以常規樣式顯示。 像這樣:

帶有前 5 行注釋的列表

如何將樣式僅應用於前 5 行?

@RowStyle 不允許您定義復雜的邏輯,而只是比較屬性的值。 但是,您可以定義一個計算屬性來實現它,您可以在其中放置該邏輯。 像這樣的東西:

import javax.persistence.*;
import org.openxava.annotations.*;
import lombok.*;

@Entity @Getter @Setter
@Tab(
    rowStyles={
        @RowStyle(style="row-highlight", property="type", value="default"),
        @RowStyle(style="row-red", property="type", value="extra")
    }
)
public class Activity {
    
    @Id
    int id;
    
    @Column(length=50) @Required
    String description;
    
    public enum Type { DEFAULT, NORMAL, EXTRA };
    public Type getType() {
        if (id >= 1 && id <= 5) return Type.DEFAULT;
        if (id > 100) return Type.EXTRA;
        return Type.NORMAL;
    }
    
}

請注意我們放置確定樣式的邏輯的type屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM