首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZK拖放问题

ZK拖放问题
EN

Stack Overflow用户
提问于 2011-04-08 20:21:36
回答 2查看 1.3K关注 0票数 0

执行拖放操作后,无法从列表框中获取新的有序型号列表。在视图中,我可以看到它是有序的,但当我尝试获取新的项目列表时,它会返回给我原始列表。有没有办法让listmodel在屏幕上按顺序显示?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-15 19:40:09

我解决了在型号列表中进行手动排序的问题。我意识到,当使用拖放时,它只能在视觉上改变列表项的顺序。下面是我的工作代码

代码语言:javascript
复制
<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类

代码语言:javascript
复制
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);
        }


    }
票数 1
EN

Stack Overflow用户

发布于 2011-04-14 10:41:43

在您的情况下,您最好维护模型中的顺序,而不是组件集。换句话说,当拖放受到影响时,您应该更改模型中的顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5594964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档