2017-12-14 1 views
-1

ZK MVC 컨트롤러에 문제가 있습니다.ZK MVC 두 목록 상자간에 드래그 앤 드롭

2 개의 목록 상자 (오른쪽 및 왼쪽) 사이에서 끌어서 놓기를 관리하고 싶습니다. 오른쪽

이 코드로드 항목 :

for(int i=0;i<lstEtic.size();i++) { 
     Listitem li = new Listitem(); 
     System.out.println(lstEtic.get(i)); 
     addListcell(li,lstEtic.get(i)); 
     right.appendChild(li); 

    } 

좌파 목록 상자가 비어 있습니다.

질문 : 누군가 Java 컨트롤러에서 끌어서 놓기 이벤트를 관리하는 코드 예제를 제공합니까?

+0

더 구체적으로 질문을해야합니다. 목록 상자를 채우는 방법은 실제로 적절하지 않습니다. 끌어서 놓기가 어떻게 세부적으로 작동해야 하는지를 아는 것이 더 재미있을 것입니다. 다음은 [공식 문서의 예]입니다 (https://www.zkoss.org/wiki/ZK_Developer%27s_Reference/UI_Patterns/Drag_and_Drop). listitem을 드래그하는 것조차 다루기 때문에, 그것을 당신의 케이스에 적용하는 것은 꽤 쉽습니다. 문제가 있으면 질문을 업데이트하십시오. –

+0

컨트롤러 클래스에서 드래그 앤 드롭 이벤트를 관리하는 코드가 필요합니다. @ MalteHartwig –

+0

이미 알고 있습니다. 나는 너의 특정한 문제가 어디에 있는지 알고 싶었다. 문서는'droppable'과'draggable'을 설정하고'onDrop' 리스너를 추가해야한다는 것을 잘 보여줍니다. zul 또는 java에서이 작업을 수행 할 수 있습니다. –

답변

0

다음은 documentation I mentioned을 기반으로 한 예입니다. 필요한 모든 속성 설정과 onDrop 리스너를 Java로 옮기는 것은 매우 쉽습니다.

<hlayout width="400px" height="400px" apply="path.to.MyComposer"> 
    <listbox id="left" hflex="1" vflex="1" /> 
    <listbox id="right" hflex="1" vflex="1" /> 
</hlayout> 

public class MyComposer 
    extends SelectorComposer<Component> 
{ 
    @Wire 
    private Listbox left; 
    @Wire 
    private Listbox right; 

    @Override 
    public void doAfterCompose(Component comp) 
     throws Exception 
    { 
     super.doAfterCompose(comp); 

     for (int i = 0; i < 10; i++) 
     { 
      Listitem li = new Listitem(); 
      li.appendChild(new Listcell("Item " + i)); 
      li.setDraggable("true"); 
      right.appendChild(li); 
     } 

     left.setDroppable("true"); 
     left.addEventListener(Events.ON_DROP, 
           (DropEvent event) -> left.appendChild(event.getDragged())); 
    } 
} 
+0

감사합니다. 지원을 위해 !! –

+0

드래그 앤 드롭이 작동하지만 왼쪽 목록 상자의 Listitem을 읽은 경우 공백이됩니다. –

+0

공백이란 무엇입니까? 그들에게 라벨이 없나요? 또는 그 값이 null입니까? –