2012-11-13 121 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