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 。如何获得所需的输出?lz帮忙。

到目前为止我已经完成的代码:-

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

1 回答 1

1

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

通常,可以使用ColumnConfig.setCell(MyCell)“MyCell”是AbstractCell. 不幸的是,主机“div”中存在“填充”问题,它没有着色。有几种方法可以解决这个问题......

简单的方法是:

  1. ColumnConfig.setCellPadding(false)
  2. 渲染填充整个单元格的自己的彩色 div(如果需要,可以使用填充)

不幸的是,这不适用于单个单元格选择( 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返回适当类的 a

不幸的是,这需要对 CSS 规则有很好的了解,并且在用户登录时需要知道可能的颜色。

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

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

  • 各种各样的ColumnConfig.setXxxClassName()
  • 各种各样的ColumnConfig.setXxxStyle()
于 2014-07-31T00:48:40.217 回答