Проблема: пользователь сделал некоторый выбор в списке множественного выбора, затем нажал флажок, и выбор потерян. Мне нужно сохранить выбор.
У меня есть мастер отчетов, который расширяется (wicket.extensions.wizard.Wizard)
У меня есть шаг, который расширяет WizardStep.WizardStep
На этом шаге у меня есть поле для выбора, которое расширяет wicket.markup.html.form.ListMultipleChoice
Я добавляю это следующим образом:
final ChooseListMultipleChoice allPlansChoiceField = new ChooseListMultipleChoice(PLANS_SELECT_ALL_PLANS_LIST, new PropertyModel(this, "selectedAllPlans"), allPlans);
allPlansChoiceField.setOutputMarkupId(true);
add(allPlansChoiceField);
и у меня также есть AjaxCheckBox (wicket.ajax.markup.html.form.AjaxCheckBox)
Используется так:
AjaxCheckBox displayArchived = new AjaxCheckBox(DISPLAY_ARCHIVED){
protected void onUpdate(final AjaxRequestTarget target) {
allPlans.clear();
final boolean isDisplayArchived = rawReportFilterInput.isDisplayArchived();
List listAllPlan = projectFacade.listActiveAndClosingPlans(isSort, isDisplayArchived);
allPlans.addAll(listAllPlan);
target.addComponent(allPlansChoiceField);
}
};
add(displayArchived);
внутри метода onUpdate модель selectedAllPlans не обновляется при текущем выборе пользователя. Например, если бы у меня была просто простая кнопка отправки ajax, то это вызвало бы событие onSubmit, и все данные формы были бы переданы, а «selectedAllPlans» заполнилось бы выбором пользователя.
Мне нужно точно такое же поведение, когда пользователь проверяет / снимает флажок AjaxCheckBox. До сих пор я не смог заставить его работать, модель всегда имеет размер = 0.
разметка:
<div class="effortsReport" style="height: 220px;">
<table>
<tr>
<input type="checkbox" wicket:id="plansSelect.displayArchived">
<br><div class="fixed_select"><select wicket:id="allPlansList"/></div></td>
</tr>
</table>
</div>
Буду признателен за некоторые советы, возможные решения.
С наилучшими пожеланиями,
Олег