3

是否可以在 smartGWT listGrid 中为某个 Row 着色?我只想为 1 行着色,而不是所有 listGrid

4

2 回答 2

9

在 SmartGWT 中,以 Style 结尾的方法(例如,get Style、getBaseStyle、getCellStyle 等)需要返回在别处定义的 CSS 类(.css 文件、应用程序加载 jsp 中的内联 css 等)。
同样适用于 set
Style 方法。

除非完成大量 CSS 自定义以保证需要这样做,否则使用getCellCSSText可能是最好的选择。

getCellCSSText 返回每个单元格的 CSS 文本,并将在每次重绘期间调用。

final ListGrid resultsGrid = new ListGrid() {
    @Override
    protected String getCellCSSText(ListGridRecord record, int rowNum, int colNum) {
        String style = super.getCellCSSText(record, rowNum, colNum);

        // conditions can check values in record using rowNum, colNum as well as record attributes
        if (record.getAttribute("<grid-field-name>").equals(<value>)) {
            if (this.getFieldName(colNum).equals("<certain-grid-field-name>") && record.getAttribute("<grid-field-name>").equals(<specific-value>)) {
                style = "font-weight:bold"; // only that cell in that row becomes bold
            } else {
                style = "color:red"; // all other cells in that row become red
            }
        } else if (record.getAttribute("<other-grid-field-name>").equals(<value>)) {
            style = "color:green"; // entire row changed to green if one column in this row contain a specific value
        }

        return style;
    }
};

它不需要像上面链接的展示示例中所示扩展 ListGridRecord,除非有其他原因。

于 2013-04-29T16:11:32.320 回答
3

从未使用过 SmartGWT,但查看 JavaDoc,我会说:

listGrid.getRecord(recordNum)

还要签出这个示例,它覆盖getBaseStyle()ListGrid.

于 2013-04-29T12:25:55.820 回答