Обновить свойства bean-компонента при нажатии кнопки

Я новичок в ZK framework и пытаюсь реализовать простую вещь, но другой подход ZK ошеломляет меня:

У меня есть сетка с моделью в виде списка лиц. Все поля сетки являются редактируемыми текстовыми полями и заполнены именем и фамилией человека (2 столбца). Я пытаюсь сделать следующее:

-- Реализовать кнопку «Сохранить все», которая привязывает все измененные значения к свойствам имени и фамилии человека.

Просто нажмите «Сохранить все», чтобы сохранить все измененные значения. Но я не хочу ничего менять до нажатия кнопки, поэтому в текстовых полях не будет @save, просто @load.

Что я сделал до сих пор: -- В событии onChange текстовых полей сохраните значение текстового поля во временном свойстве объекта Person (либо имя, либо фамилия) и добавьте этого человека в измененныйPersonsList. При нажатии кнопки «Сохранить все» замените лиц моей модели на измененные лица списка лиц... Но тогда я не могу узнать, какой человек является кем, не реализовав поле идентификатора.

Все было бы НАСТОЛЬКО просто, если бы я мог отправлять значения меток при нажатии кнопки «Сохранить все» вместе с номером строки.


zk
person uylmz    schedule 26.07.2013    source источник


Ответы (1)


Вы можете управлять временем привязки данных с помощью ключевых слов условия.

<textbox value="@load(vm.text) @save(vm.text, before='saveAll')"/>
<button onClick="@command('saveAll')"/>

Здесь мы используем условие before для координации того, когда значение должно быть сохранено: не когда оно изменяется (как обычно), а когда команда saveAll вот-вот будет выполнена.

Подробнее об этом можно прочитать в документация ZK.

person Sean Connolly    schedule 28.07.2013
comment
Большое спасибо за ответ. Я начал беспокоиться о том, что никто не отвечает на вопросы о ZK ни на SO, ни на форумах ZK. Сложность заключается в том, как отслеживать изменения в ячейках сетки БЕЗ сохранения их непосредственно в модели. Я пробовал привязку формы к каждой строке, а затем дошел до использования отражения. Я просто пытаюсь добавить кнопку «Сохранить все» в этот пример: zkoss.org/zkdemo/grid /inline_editing без фиксации каких-либо изменений до нажатия кнопки. - person uylmz; 29.07.2013