2014-02-11 68 views
0

我有一个listbox列表框。用户列表项选择成为新建表的列,所以我必须将列表项的属性“文本”与列的属性“文本”绑定;属性“可见性”和“sortOrder”的计数相同。我无法通过JSONmodel找到属性“visibility”和“order”来让listitem将它们与相同的绑定。谁有更多的经验呢?第二个问题:这里是我的绑定试用版,这是行不通的,请检查逻辑。防爆。列表框+的listItem的:如何绑定listitem属性(从列表框)列属性,sapui5

var listboxChooseColumns = new sap.ui.commons.ListBox("chooseColumns", { 

                 allowMultiSelect: true, 
                 items: 
                     [ 
                new sap.ui.core.ListItem({ 
                          text: "Export number"  })]}) 

这里是我试图道具列表项的 “文本” 绑定JSONmodel方式:

sap.ui.getCore().getModel().setProperty("{/visibleColumns/" + listItem.text +"}", true); 

这里是表列的一个例子:

table.addColumn(new sap.ui.table.Column({ 
    label : new sap.ui.commons.Label({ 
     text : "{/visibleColumns/columnName}" 
      })})); 

这里是JSON模型:

sap.ui.getCore().setModel(new sap.ui.model.json.JSONModel({ 
    columns: [ 
       { columnName: "Ëxport Number", 
       visible: true, 
       columnorder: 1 
      }, 
    { 
       columnName: "Functional Location", 
       visible: true, 
       columnorder: 1 
       }] 
})); 

但还是有些地方我错了。有任何想法吗 ?

回答

2

我认为你可以确定可见性和顺序,可见的列将是列表框中的选定项目,并且顺序将是它们出现在列表框中的顺序

因此,当您更改列表框中的内容时(添加/移除项目,更改您的顺序列表框),这也会改变你的模型。

如果你现在创建表的列的模板元素,你现在可以简单地使用“bindColumns”的方法:

var oColumnsTemplate = new sap.ui.table.Column({ 
    label : new sap.ui.commons.Label().bindProperty("text", "columnName") 
}); 
table.bindColumns("/columns", oColumnTemplate); 

,并选定时listItems现在将呈现一个表,以正确的顺序列。