在运行时更新网格中的GWT(GXT)Buttoncell

问题描述 投票:1回答:1

我正在GXT Grid中创建一个按钮单元格,并在我的网格列中添加像这样的单元格

  myCol.setCell(getButtonCell());

现在绘制所有单元格,之后取决于服务器调用我想用新的MyDTO值更新我的单元格。

因此,在我的RPC成功之后,我想为我的所有单元格调用此渲染并更新其值。我怎样才能做到这一点。

public ButtonCell<MyDTO> getButtonCell()
{
    ButtonCell<MyDTO> cellTest = new ButtonCell<MyDTO>()
    {

        @Override
        public void render(Context context, MyDTO value, SafeHtmlBuilder 
      sb)
        {
           sb.appendHtmlConstant(value.getName());
        }
gwt gxt
1个回答
2
投票

Sencha GXT网格使用ListStore。要在网格内显示新数据,需要更新商店。这可以通过调用store.addAll(theNewDataList)来完成。请记住在添加新值之前清除商店。

更新商店将强制网格重绘。在重绘期间,将调用renderButtonCell方法。要更改按钮的布局,请在render方法内部实现您要执行的操作。

这是Sencha GXT Explorer(https://examples.sencha.com/gxt/examples/#ExamplePlace:grid_aggregationgrid)的一个例子:

      final NumberFormat numberFormat = NumberFormat.getFormat("0.00");
      changeColumn.setCell(new PropertyDisplayCell<Double>(new DoublePropertyEditor(numberFormat)) {
        @Override
        public void render(com.google.gwt.cell.client.Cell.Context context, Double value, SafeHtmlBuilder sb) {
          String style = value < 0 ? "red" : "green";
          sb.appendHtmlConstant("<span style='color:" + style + "'>");
          super.render(context, value, sb);
          sb.appendHtmlConstant("</span>");
        }
      });

如果该值小于0,则将呈现红色字符串,否则呈现绿色字符串。

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.