Grid + UiBinder: установка стилей на уровне строк

...........
.........
<g:row styleName="OddNumberRow">
....
....
</g:row>
<g:row styleName="EvenNumberRow">
....
....
</g:row>
...........
...........

Вышеуказанный подход не работает. Другими словами, элементы "tr" в сгенерированном html вообще не имеют имен классов. Опция резервного копирования будет заключаться в том, чтобы вставлять стили в эти строки из конструкторов UiBinder (используя getRowFormatter.addStyleName), но сейчас я не хочу идти по этому пути (я хочу попробовать зарезервировать код, который идет в Java-класс UiBinder для только для обработки событий.)

Любые мысли / указатели будут высоко ценится.

Примечание. Кросс опубликован на https://groups.google.com/forum/?fromgroups.

Спасибо

2 ответа

Решение

Вы правы, это не работает. Я также попытался добавить стиль в g: customCell, который тоже не работает.

Единственный способ, которым я могу придумать, - это использовать SimplePanel для упаковки вашего контента в:

<g:row>
  <g:customCell>
    <g:SimplePanel width="100%" height="100%" styleName="OddNumberRow">
      <g:Label>Content</g:Label>
    </g:SimplePanel>
  </g:customCell>
</g:row>
<g:row>
  <g:customCell>
    <g:SimplePanel width="100%" height="100%"  styleName="EvenNumberRow">
      <g:Label>Content</g:Label>
    </g:SimplePanel>
  </g:customCell>
</g:row>

Похоже, GWT был обновлен, чтобы понять styleName=foo прямо на <gwt:cell> а также <gwt:row> элементы.

Ваш пример кода теперь должен делать то, что вы ожидаете:)

Другие вопросы по тегам