SAPUI5 Привязка данных для таблицы не работает - PullRequest
0 голосов
/ 13 января 2020

Я новичок в разработке 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 (), это говорит, что метод не определен или не может быть найден. я удивлен, что у меня есть эта проблема в помощнике значений, в других моих таблицах у меня нет проблем с привязкой данных.

Ответы [ 2 ]

2 голосов
/ 13 января 2020

Таблица sap.m.Table содержит "элементы" агрегации, но в вашем случае таблица представляет собой " sap.ui.table.Table ", в которой используются "строки" агрегирования. Это также причина, по которой другие методы не работают.

"ColumnListItem" не будет работать ни потому, что для агрегации требуется " sap.ui.table.Row ".

Для привязки данных, посмотрите на пример (ы) для таблицы сетки .

1 голос
/ 14 января 2020

Это сработало для меня и решило мою проблему

        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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...