我在使用GWT时遇到了问题.我正在构建一个cellTable的列,我希望单元格的样式取决于该单元格的值:
Column<MyProxy, MyProxy> editButtonColumn = new Column<MyProxy, MyProxy>(new ActionCell<MyProxy>("", new ActionCell.Delegate<MyProxy>() {
@Override
public void execute(MyProxy record) {
if (object.isEditable()) {
doSomething(record);
}
}
})) {
@Override
public MyProxy getValue(MyProxy object) {
if (object.isEditable()) {
this.setCellStyleNames("editButtonCell");
}
return object;
}
};
Run Code Online (Sandbox Code Playgroud)
我已经在调试模式下检查了正确应用"editButtonCell"样式.但是在生成的HTML中,每次为FIRST ROW都缺少样式......它看起来像一个GWT错误,但也许你们有更好的解释.
我没有检查过,但很可能在getValue调用时已经生成了单元格的开放,因此setCellStyleNames仅适用于列中的其余单元格.
正确的方法是覆盖 getCellStyleNames列以返回CSS类名称,具体取决于单元格值.
顺便说一下,你可以IdentityColumn随着时间的getValue推移而变得微不足道.