我正在尝试在AjaxEventBehavior期间更改Wicket RadioGroup中的所选单选按钮,但无法弄清楚如何执行此操作.特别是当用户在文本框中键入一些文本时,我想将所选的单选按钮更改为我指定的单选按钮.你怎么做到这一点?
这是我到目前为止(它在addComponent上崩溃):
myRadioGroup = new RadioGroup("MyNewGroup", new PropertyModel(getPojo(), "selectedGroup"));
Radio internalRadio = new Radio("InternalDirectoryNumber", new Model("Internal"));
myRadioGroup .add(internalRadio);
Radio externalRadio = new Radio("OtherMobileNumber", new Model("External"));
myRadioGroup .add(externalRadio);
TextField myTxtField= new TextField("TextBoxPrivateNumber", new PropertyModel(getVoiceItem(), "privateMobilePhone"));
myTxtField.add( new AjaxEventBehavior( "onKeyUp" )
{
@Override
protected void onEvent(AjaxRequestTarget target)
{
Component component = target.getPage().get("myForm:MyNewGroup").setDefaultModelObject("External");
target.addComponent(component); //this causes an exception
}
});
myRadioGroup .add(myTxtField);
Run Code Online (Sandbox Code Playgroud)
这是抛出的异常.java.lang.IllegalArgumentException:无法更新未将setOutputMarkupId属性设置为true的组件.组件:[MarkupContainer [Component id = myRadioGroup]]
这样做的正确方法是什么?我没有在网上找到大量的wicket文档.
要使用addComponent对myRadioGroup组件进行Ajax刷新,需要添加
myRadioGroup.setOutputMarkupId(true);
Run Code Online (Sandbox Code Playgroud)