2010-04-20 6 views
4

AjaxEventBehavior 동안 Wicket RadioGroup에서 선택된 라디오 버튼을 변경하려고하지만이를 수행하는 방법을 알 수 없습니다. 특히 사용자가 텍스트 상자에 텍스트를 입력하면 선택한 라디오 단추를 지정한대로 변경하려고합니다. 어떻게 할 수 있니?개찰구에서 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); 

가 슬로우 년대 예외입니다. java.lang.IllegalArgumentException : setOutputMarkupId 속성이 true로 설정되지 않은 구성 요소를 업데이트 할 수 없습니다. 구성 요소 : [MarkupContainer [구성 요소 ID = myRadioGroup]]

이 작업을 수행하는 올바른 방법은 무엇입니까? 이 온라인 온라인 문서를 많이 찾지 못했습니다. 당신의 myRadioGroup 구성 요소의 아약스 새로 고침을 가지고 addComponent를 사용하려면

답변

5

, 당신은 여기에 분류 된 개찰구 몇 가지 example code 일부 documentation

myRadioGroup.setOutputMarkupId(true); 

를 추가해야합니다.

관련 문제