0

我在使用带有 DropDownChoice 的 PropertyModel 时遇到问题。我需要一些东西,每次 DropdownChoice 发生变化时,它都会比较值并做一些事情。这就是我正在尝试的:

实例化选项的东西

private String typeSelected = DEFAULT_TYPE_VALUE;

List<String> typeSelectChoices = new ArrayList<String>();

typeSelectChoices.add(DEFAULT_TYPE_VALUE);
typeSelectChoices.add(TextFactory.TYPE_VALUE_1;
typeSelectChoices.add(TextFactory.TYPE_VALUE_2);

实例化 DropDownChoice

typeSelect = new DropDownChoice<String>(TYPE_SELECT_ID, 
                    new PropertyModel(this, "typeSelected"), typeSelectChoices);

DropDownChoice onChange 事件

typeSelect.add(new AjaxEventBehavior("onchange") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {

            System.out.println(typeSelected);
        }
    });

无论选择什么选项,它总是打印“选择”。我也试过:

System.out.println(typeSelect.getModel.getObject());

4

2 回答 2

1

您可以在 DropDownChoice 的方法 wantOnSelectionChangedNotifications 的 javadoc 中找到一些其他有用的信息。

于 2012-08-30T16:54:59.730 回答
1

我不是这里的专家,但看起来您需要引用 typeSelected 的属性而不是 typeSelected 本身。所以应该是这样的:

System.out.println(typeSelected.value);

正如我所说,我不是专家,所以我不确定这.value是正确的属性,但你应该能够从这里弄清楚。

祝你好运!


更新

这适用于Javascript:

System.out.println(typeSelected.options[typeSelected.selectedIndex].value);
于 2012-08-30T14:42:22.657 回答