0

我有一个带有列表项的列表框。用户选择的列表项成为新创建表的列,因此我必须将列表项的属性“文本”与列的属性“文本”绑定;属性“可见性”和“sortOrder”也同样重要。我找不到 listitem 的属性“可见性”和“顺序”以通过 JSONmodel 将它们与相同的绑定。谁有更多的经验?第二问:这里是我的绑定试用,不成功,请检查逻辑。前任。列表框 + 列表项:

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

这是 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
              }]  
 }));

但我还是在某个地方出错了。有任何想法吗 ?

4

1 回答 1

2

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

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

如果您现在为表格的列创建模板元素,您现在可以简单地使用 'bindColumns' 方法:

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

并且选定的 ListItems 现在将以正确的顺序呈现包含列的表。

于 2014-02-11T12:45:32.153 回答