【问题标题】:Wicket Dropdownchoice can not change the selected valueWicket Dropdownchoice 不能改变选中的值
【发布时间】:2020-04-07 17:14:33
【问题描述】:

我有 category1 和 category2 的两个 DropDownChoice 组件。我想在更改 category1 的选定值时更改 category2 的列表。但是category1的变化值在调用category1.getModelObject()方法时始终保持init值。

private void addCategoryChoice(Form form) {
    List<Category1> category1List = category1Impl.listProduct();

    ChoiceRenderer renderer1=new  ChoiceRenderer<Category1>() {
        @Override
        public Object getDisplayValue(Category1 value) {
            return value.getName();
        }
    };
    DropDownChoice<Category1> category1 = new DropDownChoice<Category1>("category1",
          new Model<Category1>(category1List.get(1)) , category1List,renderer1);

    category2List = category2Imple.listByCategory1Id(category1.getModelObject().getId());
    ChoiceRenderer renderer2=new  ChoiceRenderer<Category2>() {
        @Override
        public Object getDisplayValue(Category2 value) {
            return value.getName();
        }
    };
    DropDownChoice<Category2> category2 = new DropDownChoice("category2",category2List,renderer2);
    form.add(category2);

    category1.add(new AjaxEventBehavior("change") {
        @Override
        protected void onEvent(AjaxRequestTarget target) {
            category2List.clear();

            int id=category1.getModelObject().getId();
            category2List.addAll(category2Imple.listByCategory1Id(Integer.valueOf(id)));
            category2.setChoices(category2List);
        }
    });
    form.add(category1);
}

【问题讨论】:

    标签: wicket dropdownchoice


    【解决方案1】:

    AjaxEventBehavior 不会更新组件模型。您应该改用 OnChangeAjaxBehavior。

    【讨论】:

    • 问题已解决。谢谢!
    • 我认为这宁愿通过“更改”事件上的简单 AjaxFormComponentUpdatingBehavior 来完成。您选择 OnChangeAjaxBehavior 的任何具体原因?
    • @OHGODSPIDERS OnChangeAjaxBehavior 是 AjaxFormComponentUpdatingBehavior 的更智能版本。它同时使用 changeinput 作为 TextField 和 TextArea。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多