如何在包含小部件的gwt Grid单元格上设置rowspan和colspan值?

时间:2010-08-04 08:05:07

标签: gwt grid

假设我有一个像这样的代码

Grid g = new Grid(2,2);
Label l = new Label("Hello");
g.setWidget(0,1, l);
s.setColspan(0,1,2); // there is no such method :(

那么如何在包含小部件的gwt Grid单元格上设置rowspan和colspan值?

2 个答案:

答案 0 :(得分:26)

如果是选项,您可以使用FlexTable代替网格:

FlexTable flexTb= new FlexTable();
flexTb.getFlexCellFormatter().setColSpan(0, 1, 2);
flexTb.setWidget(0, 1, new Label("Hello"));

答案 1 :(得分:8)

对此有一个不那么简单的解决方案。它的工作原理是直接操作DOM。

Grid g = new Grid(10, 5);

Element e = g.getCellFormatter().getElement(0, 0);
e.setAttribute("colspan", "5");

ArrayList<Element> toRemove = new ArrayList<Element>();
for (int x=1; x<5; x++)
    toRemove.add(g.getCellFormatter().getElement(0, x));
for (Element f : toRemove)
    f.removeFromParent();

它确实如下:

  • 将第一个TD的属性“colspan”设置为“5”
  • 删除同一行中的其他TD

请注意,我曾经使用for循环。我用一个循环尝试了它,但是有些元素是NULL,所以我尝试了这种方式并且它有效。

托马斯