如何在 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>");
}
});
我想渲染特定的单元格。有没有办法做到这一点?
答案 0 :(得分:1)
在您显示的单元格渲染器中,检查它是否应显示为红色(如果是,请根据该逻辑使用background-color
。)
然后,当该值发生变化时,在需要更改的行上调用store.update(...),要求网格重新渲染它并更新颜色。
没有(良好的)方法可以手动修改已经渲染的单元格 - 这是故意的,因为网格可能决定需要重新渲染(排序或过滤操作,分页或滚动等) ),在这种情况下,您的自定义样式将丢失。相反,只需更新单元格的逻辑以反映您的需求,并告知存储/网格在数据更改时更新。