在SAP.M.Table控件中绑定/显示ODATA数据



我在表控件中遇到了绑定的odata,我希望你们中的一位专家可以省下毫秒来告诉我我在哪里搞砸了。

我可以从后端服务器中获取ODATA信息 - 第一步是我只想在带有列的表中显示它,第二步是向用户提供一个分段按钮以启用/禁用国家数据的处理。让我们立即显示数据。

这是从后备返回的ODATA后端odata

这是我的createcontent代码 - 我想在JavaScript中进行:

        var oTable = new Table({
            height: '100%',
            firstVisibleRow: 0,
            visibleRowCountMode: sap.ui.table.VisibleRowCountMode.Auto,
            selectionMode: sap.ui.table.SelectionMode.None,
            selectionBehavior: sap.ui.table.SelectionBehavior.RowOnly
        }).addStyleClass('suggCompTableStyle');
        var oColName = new sap.ui.table.Column().setLabel('{i18n>txt_countryName}').bindElement("/data>LANDX");
        oTable.addColumn(oColName);
        var oModel = sap.ui.getCore().getModel();
        oModel.callFunction("/getCountryActiveList", 
                            "GET", 
                            {SPRAS: 'E'}, 
                            null, 
                            function(oData, oResponse)
                                { oTable.setModel( new sap.ui.model.json.JSONModel({data : oData.results}));
                                  oTable.bindRows("/data");
                                  alert("ok"); },
                            function(oError) {alert("err"); });
        /* eslint-enable no-alert */
        oTable.placeAt("content");
        var oPage = new sap.m.Page({
            title: "{i18n>title}",
            content: [
                oTable
            ]
        });
        var app = new sap.m.App("myApp", {
            initialPage: "oPage"
        });
        app.addPage(oPage);
        return app;
    }/* end createContent function */

我的表是用正确数量的行创建的,但没有显示列数据。我想我对如何绑定列数据感到困惑?

感谢您的帮助。史蒂夫

问题在您的绑定oTable.bindRows("/data");中。

bindrows 方法正在期望类型sap.ui.table.Row的行模板控制。

您可以查看https://sapui5.hana.ondemand.com/#/api/sap.ui.base.base.managedobject/methods/bindaggregation,以获取更多信息。 bindrows 方法期望一个输入参数等于 bindaggregation obindinginfo 从上面的链接i。

最新更新