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