2013-04-17 154 views
2

我想更改GXT Grid中單元格的背景顏色,我正在使用GXT 3.0。我有一個鏈接與我的查詢(http://ui-programming.blogspot.in/2010/01/gxt-how-to-set-cell-grid-background.html)有關,但setRenderer方法是在GXT 3.0中不存在columnConfig。如何獲得所需的輸出? pLz幫助。GXT - 如何設置網格單元格背景顏色

代碼,我已經做了至今: -

ColumnConfig<Stock, Double> changeCol = new ColumnConfig<Stock, Double>(props.change(), 100, "Change"); 
changeCol.setCell(new AbstractCell<Double>() { 

    @Override 
    public void render(Context context, Double value, SafeHtmlBuilder sb) { 
      if (value == null) { 
       return; 
       } 
    store.get(context.getIndex()); 
      GWT.log(DOM.getCaptureElement().getId()); 
     String style = "style='background-color: " + (value < 0 ? "red" : "green") + "'"; 
     String v = number.format(value); 
     sb.appendHtmlConstant("<span " + style + " qtitle='Change' qtip='" + v + "'>" + v + "</span>"); 
    } 
    }); 
+0

重複:HTTP ://stackoverflow.com/questions/10632458/how-to-add-css-to-selected-row-in-treegrid-gxt-3 – willome

+0

thanx rply willome,鏈接ex平原約GridCellRenderer ,我正在使用GXT 3.0我如何使用setCell和AbstractCellRenderer爲了得到輸出? – Apurva

+0

接受的答案是GXT3 – willome

回答

1

對於那些需要基於網格數據改變單元格顏色,我只是不得不這樣做(GXT 3.1),但不幸的是解決方案並不完美。

通常,可以使用ColumnConfig.setCell(MyCell)進行自定義單元格渲染,其中'MyCell'是AbstractCell的子類。不幸的是,在主機'div'中沒有着色的'padding'的問題。大約有這幾個方面......

最簡單的方法是:

  1. ColumnConfig.setCellPadding(false)
  2. 渲染自己的顏色的div(如果需要的話填充物)填滿整個細胞

不幸的是,這與單細胞選擇CellSelectionModel)不能很好地發揮。用於單元格選擇的css類會被混淆,因此無法在其他樣式表中引用它。 :(

(醜陋的)替代是呈現了在模塊的html頁面(如main.html中)鏈接的自定義樣式表。然後,我可以使用CSS「類」,而不是「風格」細胞色屬性IE:

  1. 創建呈現樣式表(內容類型 '文本/ CSS')
  2. 鏈接樣式表到模塊的HTML( 'reset.css' 之後)
  3. 樣式表定製JSP需要有選擇器td.someClass.someClass不夠具體)
  4. 使用Grid.getView().setViewConfig()提供一個GridViewConfig返回適當類(ES)

不幸的是,這需要的CSS規則有很好的瞭解,也需要在用戶登錄時被稱爲可能的顏色。

可能有第三種方式使用'td'元素的樣式屬性。看看從煎茶此問題: http://www.sencha.com/forum/showthread.php?289347-Influencing-cell-td-style-in-a-grid&p=1057079(工作正在進行中)

注意其他樣式選項包括:

  • 各種ColumnConfig.setXxxClassName()
  • 各種ColumnConfig.setXxxStyle()
相關問題