2012-04-05 1 views
5

У меня много компонентов DropDownChoice со многими элементами в форме, и при загрузке формы я хотел бы отображать только сохраненные выбранные параметры. Когда пользователь нажимает на DropDownChoice, я хотел бы ajax-загрузить полный список элементов на лету.Wicket, как lazy-load DropDown выбор при нажатии?

Можно ли это сделать?

+0

Что такое «сохраненные значения»? – bert

+0

Это звучит немного неортодоксально, а что, если я хочу использовать горячие клавиши для навигации? – biziclop

+0

@bert: Возможно, это было немного неясно - сохраненные значения, значения, выбранные в последний раз, когда пользователь просмотрел форму. – Per

ответ

2

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

Обновление: Okey, я думаю, я знаю, чего вы пытаетесь достичь. Добавьте AjaxFormComponentUpdatingBehavior к выпадающему компоненту с параметром «onclick» в качестве параметра конструктора. Переопределите метод onUpdate и добавьте компонент выпадающего списка в цель. Прежде чем это сделать, обновите раскрывающуюся модель, чтобы теперь она содержала все значения.

+0

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

+0

см. Мой обновленный ответ – rotsch

0

Может быть, вы могли бы пойти с AjaxEditableLabel ... с помощью AjaxEditableChoiceLabel из Калитки расширений, вы получите compponent, который отображает текущее значение в качестве метки до тех пор, пока нажата и изменения в DropDownChoice через Ajax. Это должно быть похоже на решение, которое вы ищете.

+0

Существует такой уже: org.apache.wicket.extensions.ajax.markup.html.AjaxEditableChoiceLabel –

+0

@ martin-g Я знаю AjaxEditableChoiceLabel, но, судя по примерам калитки, это не совсем DropDownChoice. – Nicktar

+0

Да, это так. Это компонент, который показывает режим просмотра меток и DropDownChoice в режиме редактирования. –