0
是一个新手门,我正在试验一些东西,比如,我有四个面板,但只能根据DropdownChoice组件中的选择添加一个面板。 我试图使用onSelectChange()方法添加面板,但它不起作用。任何人都可以帮我拿出适当的样本代码。基于DropdownChoice选择的动态添加面板
是一个新手门,我正在试验一些东西,比如,我有四个面板,但只能根据DropdownChoice组件中的选择添加一个面板。 我试图使用onSelectChange()方法添加面板,但它不起作用。任何人都可以帮我拿出适当的样本代码。基于DropdownChoice选择的动态添加面板
我给你一个这个问题的例子。希望能帮助到你。
DropDownChoice dropDown = new DropDownChoice(...........);
AjaxFormComponentUpdatingBehavior behavior = new AjaxFormComponentUpdatingBehavior(
"onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
//you should write here the logic that
// replaces the panel, something like: content.addOrReplace(panel)
target.addComponent(form);
}
};
dropDown.add(behavior);
所以,这一切,你必须使用AjaxFormComponentUpdatingBehavior处理onchange事件。如果下拉菜单不是必需的,则可以使用tabbedpanel。在这里您可以找到示例代码:wicket tabbed panel
在大多数情况下,只需更改这些面板的可见性而不是添加或删除它们应该更容易。但总的来说,这应该是一条路。 – Nicktar 2011-06-14 10:53:42
我正在使用五个面板并在每个面板上设置可见性会添加更多代码。但我尝试了上述解决方案。但我得到空指针异常,因为下拉列表中的第一个选项将为空值。我甚至将能见度关闭,但它仍会引发相同的异常。仍在尝试处理这个 – Vijayakumar 2011-07-02 16:48:54
@lepike:谢谢。该解决方案工作,我使用页面加载EmptyPanel,来处理该空指针异常。 – Vijayakumar 2011-07-14 07:04:12