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

Sapui5 如何将列表框中的项目移动到其原始位置,sapui5,listitem,Sapui5,Listitem,我有一个包含多个列表项的列表框,我发布了一个,例如: var listboxChooseColumns = new sap.ui.commons.ListBox("chooseColumns", { allowMultiSelect: true, items: [ nameItem, new sap.ui.core.ListItem({ text: "Functional Location", tes

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

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 moveAllToTableColumn=new sap.ui.commons.Button({
按:函数(){
//var selectedItems=listboxChooseColumns.getSelectedItems();
var selectedItems=listboxChooseColumns.getItems();
对于(var i=0;i而不是AddiTeMe()),考虑使用它允许您对插入的项目进行定位(例如,在顶部,如果您指定0用于iBead):


请考虑在将来的问题中格式化您的代码,因此它是可读的。Thanks.yes,我会这样做。谢谢。此外,您可以将原始索引存储为ListITEM的自定义数据属性。例如ListITEM。AdvutoDebug(new SAP.UI.Cork.CustomData({ KEY:ORG索引),值:2 });谢谢你们!我想我还没有解决它。我在列表项中添加了原始索引:new sap.ui.core.ListItem({}).addCustomData(new sap.ui.core.CustomData({key:“org index”,value:1})),在按钮上我使用了var initialIndex=new sap.ui.core.CustomData({key:“org index”,value:i});然后是listBoxChosenColumns.insertItem(listItem,initialIndex);如果我将初始列表中的项放到它的位置,它仍然会出现在列表的末尾…哪里出错了?您问“如何将第二个列表中的项返回到第一个列表中的初始位置?”我的回答是“listboxChooseColumns.insertItem”(listItem,0)“正是这样。您能解释一下为什么不接受我的答案吗?@user3189516在按钮部分,检索列表项并调用listItem.getCustomData()。然后您可以找到索引的初始值
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);   
        }
    }
});
listboxChooseColumns.insertItem(listItem, 0);