GXT - 如何设置网格单元格背景颜色

时间:2013-04-17 11:22:31

标签: gwt gxt

我想在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帮助。

我现在做的代码: -

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>");
    }
  });

1 个答案:

答案 0 :(得分:1)

对于那些需要根据网格中的数据更改单元格颜色的人,我只需要这样做(GXT 3.1),但不幸的是解决方案并不完美。

通常,可以使用ColumnConfig.setCell(MyCell)进行自定义单元格渲染,其中“MyCell”是AbstractCell的子类。不幸的是,主机'div'中存在'填充'的问题,这个问题没有着色。这有几种方法...

最简单的方法是:

  1. ColumnConfig.setCellPadding(false)
  2. 渲染自己的彩色div,填满整个单元格(如果需要,可以使用填充)
  3. 不幸的是,这不适合单细胞选择CellSelectionModel)。用于单元格选择的css类被混淆,因此无法在其他样式表中引用它。 :(

    我的(丑陋)替代是呈现在模块的html页面中链接的自定义样式表(例如Main.html)。然后我可以使用css'class'而不是'style'属性为单元格着色。 IE:

    1. 创建一个呈现样式表的自定义JSP(内容类型为“text / css”)
    2. 将样式表链接到模块html(在'reset.css'之后)
    3. 样式表需要有选择器td.someClass.someClass不够具体)
    4. 使用Grid.getView().setViewConfig()提供返回相应类别的GridViewConfig
    5. 不幸的是,这需要熟悉CSS规则,并且还需要在用户登录时知道可能的颜色。

      使用'td'元素的style属性可能有第三种方式。从Sencha看看这个问题: http://www.sencha.com/forum/showthread.php?289347-Influencing-cell-td-style-in-a-grid&p=1057079(正在进行中)

      请注意其他样式选项包括:

      • 各种ColumnConfig.setXxxClassName()
      • 各种ColumnConfig.setXxxStyle()