假设我有这样的代码
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 :(
Run Code Online (Sandbox Code Playgroud)
那么如何在包含小部件的gwt Grid单元格上设置rowspan和colspan值呢?
Jla*_*Jla 26
如果是一个选项,您可以使用FlexTable而不是Grid:
FlexTable flexTb= new FlexTable();
flexTb.getFlexCellFormatter().setColSpan(0, 1, 2);
flexTb.setWidget(0, 1, new Label("Hello"));
Run Code Online (Sandbox Code Playgroud)
对此有一个不那么简单的解决方案.它通过直接操作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();
Run Code Online (Sandbox Code Playgroud)
它确实如下:
请注意,我曾经使用for循环.我用一个循环尝试了它,但是有些元素是NULL,所以我尝试了这种方式并且它有效.
托马斯