SAPUI5表的数据绑定不起作用

问题描述 投票:0回答:2

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

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

javascript data-binding binding sapui5
2个回答
1
投票

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

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

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


1
投票

这为我工作并解决了我的问题

        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");
© www.soinside.com 2019 - 2024. All rights reserved.