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);
}
}
对于您的情况,您最好在模型中维护订单,而不是组件集。换句话说,当拖放受到影响时,您应该更改模型中的顺序。