最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - SAPUI5 Data binding for table not working - Stack Overflow

programmeradmin0浏览0评论

I am new into SAPUI5 development, and i have problems with data binding in a table. In my other tables it works but this one is strange.

I am opening a value helper dialog, and want to display some data in the table.

My current code is:

        //
        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);

My console says "Aggregation "items" does not exist in Element sap.ui.table.Table#__table0" and when i am using a another binding method for example oTable.bindItems() or bindRows() it is saying that the method is undefinded or cannot be found. i am suprised that i have this problem in the value helper, in my other tables i have no problems with data binding.

I am new into SAPUI5 development, and i have problems with data binding in a table. In my other tables it works but this one is strange.

I am opening a value helper dialog, and want to display some data in the table.

My current code is:

        //
        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);

My console says "Aggregation "items" does not exist in Element sap.ui.table.Table#__table0" and when i am using a another binding method for example oTable.bindItems() or bindRows() it is saying that the method is undefinded or cannot be found. i am suprised that i have this problem in the value helper, in my other tables i have no problems with data binding.

Share Improve this question edited Jan 13, 2020 at 13:54 haris asked Jan 13, 2020 at 13:45 harisharis 1193 silver badges19 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 4

This worked for me and solved my problem

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

The sap.m.Table has the aggregation "items", but in your case the table is a "sap.ui.table.Table" which uses the aggregation "rows". That is also the reason why the other methods don't work.

"ColumnListItem" won't work neither because the aggregation needs "sap.ui.table.Row".

For databinding, have a look at the example(s) for the grid table.

发布评论

评论列表(0)

  1. 暂无评论