我有一个包含listitems的列表框。用户列表项选择成为新创建表的列,因此我必须将listitem的属性“text”与列的属性“text”绑定;属性“visibility”和“sortOrder”的计数相同。我找不到listitem的属性“visibility”和“order”来通过JSONmodel将它们绑定到相同的属性。谁有更多的经验呢?第二个问:这是我的绑定试用,哪个不行,请检查逻辑。防爆。列表框+ listItem:
var listboxChooseColumns = new sap.ui.commons.ListBox("chooseColumns", {
allowMultiSelect: true,
items:
[
new sap.ui.core.ListItem({
text: "Export number" })]})
这是我尝试将listitem的prop“text”与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}"
})}));
这里是JSONmodel:
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
}]
}));
但仍然在某个地方我出错了。有任何想法吗 ?
答案 0 :(得分:2)
我认为您也可以确定可见性和顺序;可见列将是ListBox中的选定项,顺序将是它们在ListBox中的显示顺序
因此,当您更改列表框中的内容(添加/删除项目,更改列表框中的顺序)时,这也会改变您的模型。
如果您现在为表的列创建模板元素,现在只需使用'bindColumns'方法:
var oColumnsTemplate = new sap.ui.table.Column({
label : new sap.ui.commons.Label().bindProperty("text", "columnName")
});
table.bindColumns("/columns", oColumnTemplate);
并且所选的ListItem现在将以正确的顺序呈现包含列的表。