wicket问题无法将一个列表中的项目移到另一个列表中
||
我有一个门面板。它具有彼此相邻的两个文本字段以及彼此相邻的两个ListMultipleChoice控件,以及在这两个ListMultipleChoice \之间的两个按钮“添加和删除”。
除非我在文本字段中输入了一些列表框之前的值,否则无法将它们从一个列表框移至另一个列表框。
如果在文本字段中输入值,则可以移动项目。
请在下面找到代码。
TextField<BigDecimal> textfield1 = new TextField<BigDecimal>(\"value1\")
{
private static final long serialVersionUID = 8199976201679629866L;
@Override
public IConverter getConverter(Class<?> type) {
return new FixedDecimalPlacesConverter();
}
};
textfield1.setType(BigDecimal.class);
textfield1.setLabel(new Model<String>(\"Value1\"));
textfield1.setRequired(true)
.add(PositiveNumberValidator.getInstance())
.add(new FixedDecimalPlacesValidator(2));
add(new FeedBackBorder(\"Border1\").add(textfield1));
TextField <BigDecimal> textfield2 = new TextField<BigDecimal>(\"value2\")
{
private static final long serialVersionUID = 8199976201679629866L;
@Override
public IConverter getConverter(Class<?> type) {
return new FixedDecimalPlacesConverter();
}
};
textfield2.setType(BigDecimal.class);
textfield2.setOutputMarkupId(true);
textfield2.setLabel(new Model<String>(\"Value2\"));
textfield2.setRequired(true)
.add(PositiveNumberValidator.getInstance())
.add(new FixedDecimalPlacesValidator(2));
add (new FeedBackBorder(\"Border2\").add(textfield2));
ChoiceRenderer<UserBean> choiceRenderer = new ChoiceRenderer<UserBean>(\"userName\", \"userID.ID\");
availableUsers= new ListMultipleChoice<UserBean>( \"availableUsersBean\", availableUsersList, choiceRenderer );
availableUsers.setOutputMarkupId(true);
availableUsers.setLabel(new Model<String>(\"Available Users\"));
add(new FeedBackBorder(\"availableUsersBorder\").add(availableUsers));
selectedUsers = new ListMultipleChoice<UserBean>( \"selectedUsersBean\", selectedUsersList, choiceRenderer );
selectedUsers.setOutputMarkupId(true);
selectedUsers.setLabel(new Model<String>(\"Selected Users\"));
add(new FeedBackBorder(\"selectedUsers Border\").add(selectedUsers ));
add = new AjaxButton(\"add\") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
update(target, availableUsers.getModelValue(),availableUsers, selectedUsers);
}
};
add(new FeedBackBorder(\"addBorder\").add(add));
remove = new AjaxButton(\"remove\") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
update(target, selectedUsers.getModelValue(), selectedUsers , availableUsers);
}
};
add(new FeedBackBorder(\"removeBorder\").add(remove));
可能是什么问题?
没有找到相关结果
已邀请:
2 个回复
挂帘妈乡
我正在使用org.apache.wicket.markup.html.form.Button,它允许您使用
来单击按钮来关闭完整表单提交。这应该允许您在不提交完整表格的情况下处理操作,因此不验证必需的文本字段。
淑灯
方法,而是触发
方法。 可能的解决方案(无特定顺序): 将列表移到嵌套表单 将
的内容移至单独的方法,并从
进行调用 将项目移动逻辑移动到不触发表单提交的基于JavaScript的纯行为或修饰器。