Калитка: (как) я могу связать AjaxCheckBox с CheckGroupSelector? - PullRequest
4 голосов
/ 23 ноября 2011

У меня есть проблема, похожая на этот вопрос: Wicket: может ли Checkgroup включать Ajax?

Я использую ListView, где у каждого элемента есть флажок.У меня также есть флажок «выбрать все».Я использую CheckGroup, CheckGroupSelector и Check, и все прекрасно работает.Теперь существует новое требование изменить состояние некоторых других элементов управления на странице при обновлении флажков.

Предложение Никтара в приведенном выше связанном вопросе тоже пришло мне в голову первым, но у меня нетНе удалось выяснить, как можно использовать AjaxCheckBox с CheckGroup / CheckGroupSelector.Согласно документу, вы должны использовать Check.

Но в этом письме за 2008 Игорь Вайнберг также утверждает, что можно использовать AjaxCheckBox в CheckGroup.

Я попробовал его, просто заменив, где я использовал Check на AjaxCheckBox, но он не работал, CheckGroupSelector больше не находил флажки.

Iтакже изучил использование метода onSelectionChanged в CheckGroup, но я бы хотел избежать его использования, так как это вызывает еще одну передачу на сервер, насколько я понял.

Может кто-нибудь дать мне подсказку?Или есть другое хорошее решение для этого?

Кстати, я использую Wicket 1.4.

1 Ответ

2 голосов
/ 23 ноября 2011

Почему вы не можете добавить AjaxFormChoiceComponentUpdatingBehavior в CheckGroup?

из JavaDoc AjaxFormComponentUpdatingBehavior:

ПРИМЕЧАНИЕ:Это поведение не работает с вариантами выбора или группами, для этого используйте AjaxFormChoiceComponentUpdatingBehavior.

AjaxFormChoiceComponentUpdatingBehavior - это поведение, используемое с CheckGroup s и RadioGroup s.Если вы использовали AjaxFormComponentUpdatingBehavior с событием onchange, вы столкнулись бы с этой ошибкой с IE.AjaxFormChoiceComponentUpdatingBehavior обрабатывает это правильно, добавляет onclick обработчики событий к каждому из Check в CheckGroup.

В качестве дополнительного примечания Игорь заявил в этом письме, что CheckBox можно заменить на AjaxCheckBox, а не Check.AjaxCheckBox - не более чем удобный подкласс CheckBox с AjaxFormComponentUpdatingBehavior("onclick"), как показывают источники .

...