我遇到类似这个问题的问题:Wicket: can Checkgroup be Ajax enabled?
我正在使用ListView,其中每个Item都有一个复选框。我还有一个“全选”复选框。我使用CheckGroup
,CheckGroupSelector
和Check
,一切都很好。现在有一个新的要求是在更新复选框时更改页面上某些其他控件的状态。
Nicktar在上述链接问题中提出的建议也是第一个出现在我脑海中的建议,但我无法了解如何将AjaxCheckBox
与CheckGroup
/ {一起使用{1}}。根据文档,您必须使用CheckGroupSelector
。
但在this mail from 2008中,Igor Vaynberg也表示可以在Check
中使用AjaxCheckBox
。
我尝试将CheckGroup
替换为Check
后使用AjaxCheckBox
,但它无效,CheckGroupSelector
再也找不到复选框了。
我还考虑在onSelectionChanged
中使用CheckGroup
方法,但我想避免使用它,因为它会触发到服务器的另一次往返,据我所知。
有人可以给我一个提示吗?或者还有另一个很好的解决方案吗?
顺便说一下,我正在使用Wicket 1.4。
答案 0 :(得分:2)
为什么不能向CheckGroup
添加AjaxFormChoiceComponentUpdatingBehavior
?
来自AjaxFormComponentUpdatingBehavior
的JavaDoc:
注意:此行为不适用于选择或组使用AjaxFormChoiceComponentUpdatingBehavior。
AjaxFormChoiceComponentUpdatingBehavior
是与CheckGroup
和RadioGroup
一起使用的行为。如果您在AjaxFormComponentUpdatingBehavior
事件中使用onchange
,则会在IE中遇到this bug
。 AjaxFormChoiceComponentUpdatingBehavior
Check
对CheckGroup
中的每个CheckBox
正确处理AjaxCheckBox
。
作为附注,Igor在该邮件中说明的是,Check
可以替换为AjaxCheckBox
,而不是CheckBox
。 AjaxFormComponentUpdatingBehavior("onclick")
只是{{1}}的便捷子类,{{1}},adding onclick
event handlers显示。