0

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

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);   
        }
    }
});

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

4

1 回答 1

1

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

listboxChooseColumns.insertItem(listItem, 0);
于 2014-02-05T15:01:32.797 回答