在检票口应用程序中,我使用Select2有两个依赖的下拉菜单。现在,我要设置两个下拉菜单的默认值。默认值应该是choiceList的第一个元素。 如果我从第一个下拉菜单中选择其他选项,则应该相应地更新第二个下拉菜单的默认值。
private static class ValueEditor extends Select2Choice<String> {
private static final long serialVersionUID = SingleFiniteValueEditor.serialVersionUID;
ValueEditor(String id, EditableSingleFiniteModel<?> model, ChoiceProvider<String> provider) {
super(id, model.valueModel(), provider);
setOutputMarkupId(true);
getSettings().setDropdownAutoWidth(true);
getSettings().setCloseOnSelect(true);
getSettings().setPlaceholder("");
getSettings().setAllowClear(!model.mandatory());
if(!model.choices().getObject().isEmpty()) {
model.valueModel().setObject(model.choices().getObject().get(0));
}
}
@Override
protected void onInitialize() {
super.onInitialize();
add(new OnChangeAjaxBehavior() {
private static final long serialVersionUID = SingleFiniteValueEditor.serialVersionUID;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(getComponent().getParent());
target.prependJavaScript(JQuery.execute("$('#%s').select2('destroy');", getJquerySafeMarkupId()));
target.appendJavaScript(JQuery.execute("$('#%s').select2('focus');", getJquerySafeMarkupId()));
send(getComponent(), Broadcast.BUBBLE, new ValueChangedEvent());
}
});
// FIXME append a class and style in stylesheet?
add(AttributeModifier.append("style", "min-width:200px;"));
}
@Override
protected void onComponentTag(ComponentTag tag) {
tag.setName("select");
super.onComponentTag(tag);
}
}
我是wicket框架的新手,所以请帮助我解决这个问题。
首先,两个下拉列表是从属下拉列表,如图enter image description here所示。第二个下拉列表的选择列表取决于第一个下拉列表的选择值。