2011-04-08 25 views
0

ドラッグ操作後にリストボックスから新しい注文モデルリストを取得できません&ドロップ操作。私はそれが注文されていることを見ることができますが、私はアイテムの新しいリストを取得しようとすると私に元のリストを返します。 listmodelをスクリーン上で注文して取得する方法はありますか?ZKドラッグ&ドロップ問題

答えて

1

モデルリストに手作業でソートしました。私はそれを視覚的にリストアイテムの注文を変更するだけドラッグアンドドロップを使用するときに気づいた。ここに私の作業コード

<listbox id="listBox_Action" 
             fixedLayout="true" width="300px" 
             model="@{mainCtrl.comboModelAction}" 
             selectedItem="@{mainCtrl.selectedAction}" mold="paging" 
             pageSize="25" forward="onSelect=onSelectedPanelChange()" 
             onSelect="bd.value=self.selectedItem.label;bd.close();"> 


             <listhead> 
              <listheader 
               label="${c:l('SYSADM.SelectAction.combo.ActionName')}" /> 

             </listhead> 
             <listitem 
              self="@{each=ACTION_LIST}"> 
              <listcell 
               label="@{ACTION_LIST.action_func}" 
               value="@{ACTION_LIST.action_func}" /> 

             </listitem> 
            </listbox> 

そして、ここでJavaクラス

public void onChangeList(ForwardEvent event) { 
     DropEvent dropEvent = (DropEvent) event.getOrigin(); 

     // Listitem li = (Listitem)event.getTarget(); 
     // Listbox lb =(Listbox)event.getOrigin().getTarget(); 

     int indexOfdraggedListitem =0; 
     int indexOfdroppedListitem =0; 

     Listitem draggedListitem = (Listitem) dropEvent.getDragged(); 

     if (dropEvent.getTarget() instanceof Listitem) { 

      droppedListitem = (Listitem) dropEvent.getTarget(); 

      indexOfdraggedListitem = left.getIndexOfItem(draggedListitem); 

      indexOfdroppedListitem = left.getIndexOfItem(droppedListitem); 

      if (indexOfdraggedListitem > indexOfdroppedListitem) { 
       droppedListitem.getParent().insertBefore(draggedListitem, droppedListitem); 

       draggableListLeft.add(indexOfdroppedListitem, draggableListLeft.get(indexOfdraggedListitem)); 

       // Collections.swap(draggableListLeft, indexOfdraggedListitem, 
       // indexOfdroppedListitem); 

       draggableListLeft.remove(indexOfdraggedListitem + 1); 
       // draggableListLeft.add(indexOfdroppedListitem + 1, 
       // temp_Fie_Dif_Request_Set); 

      } else { 

       droppedListitem.getParent().insertBefore(draggedListitem, droppedListitem); 

       draggableListLeft.add(indexOfdroppedListitem, draggableListLeft.get(indexOfdraggedListitem)); 

       draggableListLeft.remove(indexOfdraggedListitem); 

      } 

     } else { 
      indexOfdraggedListitem = left.getIndexOfItem(draggedListitem); 
      left.appendChild(draggedListitem); 
      draggableListLeft.add(draggableListLeft.get(indexOfdraggedListitem)); 
      draggableListLeft.remove(indexOfdraggedListitem); 
     } 


    } 
0

あなたの場合、コンポーネントセットではなく、モデル内で注文を維持することをお勧めします。言い換えると、ドラッグアンドドロップが影響を受けるときにモデルの順序を変更する必要があります。

関連する問題