2012-11-13 96 views
1

我遇到了使用GWT的问题。我建立一个cellTable的列,我想一个单元格的风格取决于该单元格的值: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; 
     } 
    }; 

我检查调试模式下的风“editButtonCell”正确应用。但是在生成的HTML中,每次都缺少第一行的样式......它看起来像是一个GWT错误,但也许你们有更好的解释。

回答

7

我没有检查过,但最有可能的是单元格的开放时间已经生成,因为getValue被调用,因此setCellStyleNames只适用于列中剩余的单元格。

要做到这一点的正确方法是根据单元格值,根据重写getCellStyleNames来返回CSS类名称。


顺便说一句,你就可以延长IdentityColumngetValue然后变得微不足道。

+0

太棒了! 'getCellStyleNames'解决方案就像一个魅力。非常感谢。 – Max