2009-02-11 4 views
0

Я выхожу на конечность здесь и надеюсь, что кто-то использовал IT Mill Toolkit раньше:Обновленная информация о товаре в контейнере, как обновить?

У меня есть стол с кучей предметов внутри. Я редактирую один из них - как мне получить таблицу для обновления и повторной рендеринга? Я пробовал с requestRepaint(), requestRepaintAll() как в таблице, так и в макете, содержащей таблицу, но я не могу ее обновить. Когда я перезагружаю страницу или прокручиваю назад и вперед (так, чтобы элемент переходил из представления и возвращался в поле зрения), элемент был обновлен.

Есть ли способ программно получить таблицу, чтобы обновить ее текущий вид?

ответ

1

Не контейнер контейнера реализует эту функцию? Скажите, что вы используете IndexedContainer в своей таблице. AFAIK IndexedContainer замечает, когда вы меняете контент, и он, в свою очередь, отправляет уведомление обо всем, используя его как источник данных (= таблица). Поэтому нормальная таблица должна поднять это.

Edit- проверил это:

IndexedContainer реализует Property.ValueChangeNotifier

Таблица реализует ValueChangeListener, который работает в requestRepaint().

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

+0

Я реализовал свой собственный контейнер. Это может быть проблемой :) –

+0

requestRepaint() является правильным, но он ничего не сделает, если оценит, что контент не изменился. valueChange (event) в таблице делает resetPageBuffer(); и refreshRenderedCells(); перед вызовом requestRepaint(). Есть проблема, почему простая перекраска не работает. Используйте значениеChangeNotifier –

Смежные вопросы