【发布时间】:2011-07-04 10:21:18
【问题描述】:
问题:用户在多选列表框中进行了一些选择,然后按下复选框,选择丢失。我需要保留所选内容。
我有一个扩展的报告向导 (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 时,我需要完全相同的行为。到目前为止,我还不能让它工作,模型总是 size = 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>
我会很感激一些建议,可能的解决方案。 最好的祝福, 奥列格
【问题讨论】:
标签: ajax forms checkbox submit wicket