【问题标题】:SAPUI5 Data binding for table not working表的 SAPUI5 数据绑定不起作用
【发布时间】:2020-04-30 05:46:46
【问题描述】:

我是 SAPUI5 开发的新手,我在表中的数据绑定方面遇到了问题。在我的其他表中它可以工作,但这个很奇怪。

我正在打开一个值助手对话框,并希望在表格中显示一些数据。

我当前的代码是:

        //
        oTable = this._oValueHelpDialog.getTable();
        oTable.setModel(this.getModel());
        oTable.setModel(oCol, "columns");       

        // bind aggregation
        // items
        // shrhelpSet
        // spalten heißen key und value

        var oTemplate = new sap.m.ColumnListItem({
            cells: [
                new sap.m.Text({
                    text: "{key}"
                }),
                new sap.m.Text({
                    text: "{value}"
                })]
            });

        oTable.bindAggregation("items", "/shrhelpSet", oTemplate);

我的控制台显示“元素 sap.ui.table.Table#__table0 中不存在聚合“项目”” 当我使用另一种绑定方法时,例如 oTable.bindItems() 或 bindRows(),它表示该方法未定义或找不到。 我很惊讶我在值助手中有这个问题,在我的其他表中我没有数据绑定问题。

【问题讨论】:

    标签: javascript data-binding binding sapui5


    【解决方案1】:

    sap.m.Table 具有聚合“项目”,但在您的情况下,该表是使用聚合“行”的“sap.ui.table.Table”。这也是其他方法不起作用的原因。

    “ColumnListItem”也不起作用,因为聚合需要“sap.ui.table.Row”。

    对于数据绑定,请查看grid table 的示例。

    【讨论】:

      【解决方案2】:

      这对我有用并解决了我的问题

              var aColumnData = [{
                  columnId: "Key"
              }, {
                  columnId: "Value"
              }];
      
              var aData = [{
                  Key: "asdf",
                  Value: "hey"    
              }, {
                  Key: "abcd",
                  Value: "hey2"
              }];
      
              var oModel2 = new sap.ui.model.json.JSONModel();
      
              oModel2.setData({
                  columns: aColumnData,
                  rows: aData
              });
      
              oTable.setModel(oModel2);
      
              oTable.bindColumns("/columns", function(index, context) {
                  var sColumnId = context.getObject().columnId;
                  //alert(sColumnId);
                  return new sap.ui.table.Column({
                      id : sColumnId,
                      label: sColumnId,
                      template: sColumnId
                  });
              });
              oTable.bindRows("/rows");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-15
        • 2019-01-31
        • 1970-01-01
        • 2016-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多