2013-04-17 38 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()
相关问题