如何将列表框中的项目移动到其原始位置

时间:2014-02-05 14:48:08

标签: sapui5 listitem

我有一个包含多个列表项的列表框,我发布了一个例如:

var listboxChooseColumns = new sap.ui.commons.ListBox("chooseColumns", {
    allowMultiSelect: true,
    items: [
        nameItem,
        new sap.ui.core.ListItem({
            text: "Functional Location",
            test: "lastName"   
        })
    ]
})

一个方框中的列表项可以移动到另一个方框:

var moveAllToTableColumn = new sap.ui.commons.Button({
        press: function() {
            //var selectedItems = listboxChooseColumns.getSelectedItems();
            var selectedItems = listboxChooseColumns.getItems();
            for (var i=0; i<selectedItems.length;i++) {
                var listItem = selectedItems[i];
                listBoxChosenColumns.addItem(listItem);   
            }
        }
});  

如果我想将项目从第二个列表返回到第一个列表,则该项目将转到列表的末尾,而不是其初始位置。

var moveFromTableColumn = new sap.ui.commons.Button({
    press: function(){
        var selectedItems = listBoxChosenColumns.getSelectedItems();
        for (var i=0; i<selectedItems.length;i++) {
            var listItem = selectedItems[i];
            listBoxChosenColumns.removeItem(listItem);
            listboxChooseColumns.addItem(listItem);   
        }
    }
});

如何将项目从第二个列表返回到第一个列表到初始位置?

1 个答案:

答案 0 :(得分:1)

使用insertItem(oItem, iIndex)代替addItem(),它允许您定位要插入的项目(例如,如果为iIndex指定0,则位于顶部):

listboxChooseColumns.insertItem(listItem, 0);