2014-07-07 5 views
0

체크 그룹이 있고 그룹에서 체크 박스를 선택할 때 선택/체크 박스의 수를 확인하고 싶습니다.
아래의 코드에서 선택한 수의 확인란을 가져올 수 있지만 선택을 취소하거나 선택을 제거하면 여전히 선택되어있는 것을 볼 수 있습니다.
예 : 2를 선택했습니다. 이제 2 개의 문자열이 선택됩니다.
이제 하나의 체크 박스를 선택 취소합니다. 이제 2 개의 선택된 문자열을 얻습니다. 나는 한 문자열을 검사 할 것으로 기대한다.

이 코드는 아래와 같습니다 :
체크 박스가 개찰구에서 선택 해제되지 않음

final CheckGroup myGroup = new CheckGroup("group", new ArrayList()) { 
    @Override 
    protected Collection<String> convertValue(String[] values) throws ConversionException { 
     Collection<String> myCollection = super.convertValue(values); 
     checkedString.addAll(myCollection); 
     HashMap<Integer, String> myTempList = new HashMap<Integer, String>(); 
     for (String myString : checkedString) { 
      myTempList.put(myString.getSystemId(), myString); 
     } 
     checkedString.clear(); 
     for (Entry<Integer, String> myEntry : myTempList.entrySet()) { 
      checkedString.add(myEntry.getValue()); 
     } 
     return checkedString; 
    } 

    @Override 
    protected void onSelectionChanged(Collection newSelection) { 
     newSelection = checkedString; 
    } 

    @Override 
    protected boolean wantOnSelectionChangedNotifications() { 
     return true; 
    } 
}; 


add(myForm); 
myForm.add(myGroup); 
+0

위젯을 사용하고 있습니다. 1.4.19 – Krishna

+0

'onSelectionChanged'에 코드가 없습니다. 그것은 무엇을해야 하는가? – RobAu

+0

selectedOrders 수를 얻고 싶었지만 지금은 필요하지 않습니다. – Krishna

답변

0

이 구성 요소에 동작을 추가

sampleChckbox.add(new AjaxFormComponentUpdatingBehavior("onclick"){ 
    @Override 
    protected void onUpdate(AjaxRequestTarget target) { 
//perform your operation here  
} 

"onclick을"이벤트에 Ajax 요청을 발광하는이 방법; 런타임에 백엔드 논리를 업데이트 할

편집 :

가 AjaxFormChoiceComponentUpdatingBehavior

AjaxFormChoiceComponentUpdatingBehavior를 사용 CheckGroup 클래스에 매우 구체적으로는 CheckGroup들과 RadioGroup들과 함께 사용할 수있는 동작입니다. onchange 이벤트와 함께 AjaxFormComponentUpdatingBehavior을 사용한 경우 으로 this bug으로 실행됩니다. AjaxFormChoiceComponentUpdatingBehaviorCheckGroupCheck 각각에 대해 adding onclick event handlers을 올바르게 처리합니다.

이고가 그 메일에 명시한 내용은 CheckBoxAjaxCheckBox이 아니라 Check으로 바꿀 수 있다는 것입니다. AjaxCheckBoxAjaxFormComponentUpdatingBehavior("onclick")CheckBox의 편의 하위 클래스에 불과하며, the sources과 같이 표시됩니다.

+0

체크 박스를 사용하지 않았습니다. CheckGroupSelector, CheckGroup만을 사용했습니다. – Krishna

+0

면책; 당신의 의심은 무엇입니까? – atom217