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 に答える