Dropdown Choice с проблемой setNullValid - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь создать DropDownChoice с setNullValid(true), я даю модели Class A с Class B, и я даю ей список класса B для выбора, если класс AКласс B уже выделен, выбранный класс B не отображается так, как выбранный при рендеринге.

Если Ab не был нулевым, я бы хотел, чтобы его уже выбрали, но также один из параметров будет нулевым.

Спасибо за ваше время

    DropDownChoice<B> bChoices = new DropDownChoice<>(DROPDOWN, new PropertyModel<>(a, "b"),
            listOfBs, new ChoiceRenderer<>("name"));
    b.setNullValid(true);

1 Ответ

0 голосов
/ 14 февраля 2019

Wicket использует IChoiceRenderer#getIdValue(), чтобы найти выбранную опцию.Если вы не предоставите пользовательский IChoiceRenderer, тогда Wicket будет использовать ChoiceRenderer и в качестве id будет использовать индекс предмета в List опций.

См. Использование #equals() at https://github.com/apache/wicket/blob/7bef3d67c8ccc269f02e8943bf9a22c3cd5438e9/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java. Еще лучше запустить отладчик и посмотреть, что получится!

...