如何渲染特定的网格单元格(GXT)?

时间:2017-10-23 14:22:21

标签: java gwt listener gxt

如何在 GXT(Java)中从网格渲染特定网格单元?

我想从网格的单元格中验证表达式(作为字符串),如果网格单元格中的表达式具有无效语法,则相应网格单元格的背景应该以红色变化,否则背景应保持白色。

以下是呈现特定列的所有单元格的示例:

getColumnModel().getColumn(cellColIndex).setCell(new AbstractCell<Object>() {
        @Override
        public void render(com.google.gwt.cell.client.Cell.Context context, Object value, SafeHtmlBuilder sb) {
            sb.appendHtmlConstant("<div style=\"background-color:red;\">");
            sb.appendHtmlConstant(value.toString());
            sb.appendHtmlConstant("</div>");
        }
    });

我想渲染特定的单元格。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

在您显示的单元格渲染器中,检查它是否应显示为红色(如果是,请根据该逻辑使用background-color。)

然后,当该值发生变化时,在需要更改的行上调用store.update(...),要求网格重新渲染它并更新颜色。

没有(良好的)方法可以手动修改已经渲染的单元格 - 这是故意的,因为网格可能决定需要重新渲染(排序或过滤操作,分页或滚动等) ),在这种情况下,您的自定义样式将丢失。相反,只需更新单元格的逻辑以反映您的需求,并告知存储/网格在数据更改时更新。