Как установить значения rowspan и colspan в ячейке gwt Grid, содержащей виджет? - PullRequest
13 голосов
/ 04 августа 2010

допустим, у меня есть такой код

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 :(

Так как мне установить значения rowspan и colspan для ячейки gwt Grid, содержащей виджет?

Ответы [ 2 ]

26 голосов
/ 04 августа 2010

Если это опция, вы можете использовать FlexTable вместо Grid:

FlexTable flexTb= new FlexTable();
flexTb.getFlexCellFormatter().setColSpan(0, 1, 2);
flexTb.setWidget(0, 1, new Label("Hello"));
8 голосов
/ 28 сентября 2011

Существует не очень простое решение для этого.Он работает, манипулируя непосредственно 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();

Он делает следующее:

  • устанавливает для атрибута "colspan" первого TD значение "5"
  • , удаляет другоеTD в том же ряду

Обратите внимание, что я использовал для циклов for.Я попробовал это с одним единственным циклом, но некоторые элементы были NULL, поэтому я попробовал это таким образом, и это сработало.

Томас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...