Могу ли я динамически добавлять постоянные строки с помощью Wicket? - PullRequest
0 голосов
/ 10 января 2012

Я могу динамически добавлять строки в таблицу в Wicket. Однако после отправки формы вновь созданные строки исчезают. Я хотел бы повторно использовать эти строки для нескольких представлений. Возможно ли что-то подобное? При попытке найти решение я нашел способ ListView.setReuseItems(true). Для этого сохраняются значения из исходных строк для следующей отправки, но вновь созданные строки по-прежнему удаляются. Спасибо!

1 Ответ

1 голос
/ 07 марта 2012

Поскольку вы не публиковали какой-либо код, я просто предполагаю, что вы в настоящее время изменяете иерархию компонентов вручную, чтобы добавить новые строки.

Лучшим подходом было бы сгенерировать вашу таблицу из базового объекта модели. Пока ваша модель предназначена для поддержания своего состояния между запросами, все состояние таблицы будет безопасно храниться в сеансе. Таким образом, чтобы добавить новую строку, все, что вам нужно сделать, - это добавить ее к объекту модели и вызвать повторную визуализацию таблицы (например, с помощью Ajax или обновления страницы).

Однако, если вы имеете дело с огромными объемами данных, не стоит хранить все в сеансе. В этом случае вам понадобится более сложная модель, чтобы сохранить минимальный объем памяти. Но общая идея остается прежней: модель обрабатывает данные, а компонент - представление.

...