SmartGWT:是否可以为列表网格中的某一行着色?

时间:2013-04-29 11:28:05

标签: java gwt row smartgwt listgrid

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

2 个答案:

答案 0 :(得分:9)

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

除非进行大量的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。

答案 1 :(得分:3)

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

listGrid.getRecord(recordNum)

同时结帐sample,这会覆盖ListGrid的{​​{3}}。