2013-02-08 1 views
0

각 행에 임의의 숫자를 생성하는 ZK 표가 있습니다. 각 행은 확인란과 번호 자체로 구성됩니다.선택한 모든 테이블 행을 ZK로 삭제

확인란을 선택한 모든 행을 삭제하는 버튼이 필요했습니다. 여기에 '삭제'버튼에 대한 이벤트 핸들러 :

deleteButton.addEventListener(Events.ON_CLICK, 
      new EventListener() { 

     public void onEvent(Event evt) { 
       Iterator<Component> selected = randomTable.queryAll("row checkbox").iterator(); 
       System.out.println("Deleted: "); 
       while (selected.hasNext()) { 
        Checkbox c = (Checkbox) selected.next(); 
        if (c.isChecked()) { 
         System.out.print(c.getId()); 
         System.out.println(" from row " + c.getParent().getId()); 
         c.getParent().detach(); // detach the checked row 
        } 
       } 
      } 
     }); 

은 그러나 첫 번째는 다른 모든 검사 것들을 발견에도 불구하고, 행을 확인 삭제합니다.

저는 아직 ZK를 처음 사용합니다. 어떤 아이디어?

답변

0

해결 방법을 찾았습니다. 밖으로 나간다 중개 목록을 사용하여 제거하려는 행을 저장하면 detach()이 모두 작동합니다.

어쨌든 왜 처음에는 작동하지 않았는지에 대한 힌트를 공유하십시오. 어떤 기여라도 +1하십시오.

deleteButton.addEventListener(Events.ON_CLICK, 
      new EventListener() { 
     public void onEvent(Event evt) { 
      List<Component> toRemove = new Vector<Component>(); 
      Iterator<Component> selected = randomTable.queryAll("row checkbox").iterator(); 
      System.out.println("Deleted: "); 
      while (selected.hasNext()) { 
       Checkbox c = (Checkbox) selected.next(); 
       if (c.isChecked()) { 
        System.out.print(c.getId()); 
        System.out.println(" from row " + c.getParent().getId()); 
        toRemove.add(c.getParent()); 
       } 
      } 
      for (Component c : toRemove) 
       c.detach(); 
     } 

    }); 
: 여기

는 업데이트 된 코드입니다