UI5 Справка по поиску OData не отображает значения

#odata #sapui5

Вопрос:

это ответ odata, который я получаю:

введите описание изображения здесь

моим желаемым результатом будет справка по поиску, которая отображает столбцы «TypRolle», «RolleNr» и «RolleOri» в ответе odata. Но прямо сейчас я застрял в попытке просто отобразить один из них, «TypRolle».

вот как выглядит моя справка по поиску прямо сейчас: введите описание изображения здесь

Как вы можете видеть, значения не отображаются.

Вот мой метод valueHelpRequest:

 var roletypeUrl = "my odata url";
var attModel = new sap.ui.model.json.JSONModel();
var link = this.getView().byId("roletype"); // roletype input field
var oDataModel = new sap.ui.model.odata.v2.ODataModel(roletypeUrl, {
    json: true,
    loadMetadataAsync: true
});

oDataModel.read("/ZshNsiAgr01xxlEinzelTypSet", {
            success: function(oData, response) {
                    attModel.setData(oData);

                    var oValueHelpDialog = new sap.m.Popover({
                        title: "Rollentyp auswählen",
                        footer: [new sap.m.Button({
                            text: "Ok"
                        })]
                    });

                    oValueHelpDialog.openBy(link);

                    var oItemTemplate = new sap.m.StandardListItem({
                        title: "test",
                        description: "{TypRolle}"
                    });

                    var oHelpTable = new sap.m.Table({
                        width: "300pt",
                        columns: [
                            new sap.m.Column({
                                header: [
                                    new sap.m.Label({
                                        text: "Rollentyp"
                                    })
                                ]
                            })
                        ],
                        items: {
                            path: "/results",
                            template: oItemTemplate
                        },
                        items: [
                            new sap.m.ColumnListItem({
                                cells: [
                                    new sap.m.Text({
                                        text: "{TypRolle}"
                                    })
                                ]
                            })
                        ]
                    })

                    oHelpTable.setModel(attModel);
                    oValueHelpDialog.addContent(oHelpTable);
 

Я очень благодарен за любые предложения и с нетерпением жду ваших ответов 🙂

Комментарии:

1. Агрегация элементов определяется дважды (второе неверно). Вы также должны настроить свой шаблон (oItemTemplate), используя элементы ColumListItem, как вы делаете во втором агрегировании элементов.

Ответ №1:

Если вам нужно сделать это с помощью модели JSON … вот он

                   ]
                            })
                        ]
                    })

                    oHelpTable.bindAggregation("items", "/results", new sap.m.ColumnListItem({
                      cells: [
                        new sap.m.Text({
                          text: "{TypRolle}"
                        })
                      ]
                    }));

                    oHelpTable.setModel(attModel);
                    oValueHelpDialog.addContent(oHelpTable);
 

Или же вы также можете напрямую привязаться к своей модели OData по умолчанию, и она может автоматически извлекать данные без вашей записи read