gxt(ext gwt)网格和列宽

时间:2012-02-08 20:22:59

标签: grid width gxt

我正在尝试创建一个填充ContentPanel宽度的网格。网格应该有两列大小相等的列,这些列跨越网格的整个宽度。调整浏览器窗口大小应相应地更新网格大小。我希望下面的代码可以实现这一点,但是网格不会在浏览器调整大小时增长,并且第二列和网格的右边缘之间存在~15px间隙。

有什么想法吗?

public class MyGrid extends ContentPanel {

@Override
protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FillLayout());
    ColumnConfig c1 = new ColumnConfig("value","value", 50);
    ColumnConfig c2 = new ColumnConfig("value1","value1", 50);
    ListStore<ModelData> store = new ListStore<ModelData>();
    for (int i=0; i<10; i++) {
      BaseModelData data = new BaseModelData();
      data.set("value", "value");
      data.set("value1", "value1");
      store.add(data);
    }
    Grid<ModelData> grid = new Grid<ModelData>(store, new ColumnModel(Arrays.asList(new ColumnConfig[] {c1, c2})));
    grid.setAutoHeight(true);
    grid.setAutoWidth(true);
    grid.getView().setAutoFill(true);
    add(grid); 
}

}

2 个答案:

答案 0 :(得分:1)

桌子右侧额外空间的原因是grid.setAutoHeight()。删除它,它将消失。使用浏览器调整表格大小似乎需要使用Viewport(我不明白为什么ContentPanel会在没有上面代码中的网格的情况下增长。这段代码完成了我想要做的事情:

public class MyGrid extends Viewport {

  @Override
  protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FitLayout());
    ColumnConfig c1 = new ColumnConfig("value","value", 50);
    ColumnConfig c2 = new ColumnConfig("value1","value1", 50);
    ListStore<ModelData> store = new ListStore<ModelData>();
    for (int i=0; i<10; i++) {
      BaseModelData data = new BaseModelData();
      data.set("value", "value");
      data.set("value1", "value1");
      store.add(data);
    }
    final Grid<ModelData> grid = new Grid<ModelData>(store, new ColumnModel(Arrays.asList(new ColumnConfig[] {c1, c2})));
    grid.getView().setAutoFill(true);
    ContentPanel panel = new ContentPanel();
    panel.setLayout(new FitLayout());
    panel.add(grid);
    add(panel);
  }
}

答案 1 :(得分:0)

你试过这个吗?

grid.getView().setForceFit(true);

网格适合其容器。另外你真的应该使用容器的其他布局来使内部元素适合容器(FitLayout,BorderLayout,RowLayout是可以接受的)