0
拖動&拖放操作後,我無法從列表框中獲取新的有序模型列表。在視圖中,我可以看到它是有序的,但是當我嘗試獲取新項目列表時,它會返回我原來的列表。有沒有什麼辦法讓屏幕上顯示的listmodel?ZK拖放問題
拖動&拖放操作後,我無法從列表框中獲取新的有序模型列表。在視圖中,我可以看到它是有序的,但是當我嘗試獲取新項目列表時,它會返回我原來的列表。有沒有什麼辦法讓屏幕上顯示的listmodel?ZK拖放問題
我解決了它在模型列表中進行手動排序。我意識到,在使用拖放時,只會在視覺上改變列表項目的順序。我在這裏的工作代碼
<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);
}
}
對於您的情況,您最好在模型中維護訂單,而不是組件集。換句話說,當拖放受到影響時,您應該更改模型中的順序。