SAPUI5 ValueHelpDialog 单元格为空

SAPUI5 ValueHelpDialog Cells Empty

我对编码和 Whosebug 还很陌生。我正在尝试创建一个 sapui5 值帮助对话框 (class sap.ui.comp.valuehelpdialog.ValueHelpDialog),它应该最终过滤来自 SAP 后端服务中用户 table 的搜索请求。

现在,我什至无法让它正确显示我的模拟数据。模拟数据由一个 "Personen.json" 和一组用户组成,这些用户具有以下字段,例如此示例片段:

    [{
    "BewId": "2123456789",
    "Posno": 1,
    "PNumber": "P87879876",
    "Firstname": "Heinz",
    "Company": "Some company",
    "IsIntern": true,
    "Lastname": "Wolff"
}, {
    "BewId": "2123456789",
    "Posno": 2,
    "PNumber": "P23498711",
    "Firstname": "Karl",
    "Company": "some company",
    "IsIntern": true,
    "Lastname": "Schmidt"
}]

我几乎尝试了所有我能想到的方法:

Bellow 是我的主视图控制器中按下帮助值的事件处理函数:

    handleValueHelp: function () {
            var oColModel = this.getView().getModel("columnsModel");
            var oUserModel = this.getView().getModel("userModel");
            this._oValueHelpDialog = sap.ui.xmlfragment("appName.view.ValueHelpPopover", this);
            this.getView().addDependent(this._oValueHelpDialog);

            var oTable = this._oValueHelpDialog.getTable();

            oTable.setModel(oUserModel);
            oTable.setModel(oColModel, "columns");

            var oTemplate = new sap.m.ColumnListItem({
                type: sap.m.ListType.Active,
                cells: [
                    new sap.m.Label({
                        text: "{PNumber}"
                    }),
                    new sap.m.Label({
                        text: "{Firstname}"
                    }),
                    new sap.m.Label({
                        text: "{Lastname}"
                    })
                ]
            });

            if (oTable.bindRows) {
                oTable.bindAggregation("rows", "/");
            }

            if (oTable.bindItems) {
                oTable.bindAggregation("items", "/", oTemplate);
            }

            this._oValueHelpDialog.update();

            this._oValueHelpDialog.open();

        }

我的 XML ValueHelpDialog 视图片段:

    "ValueHelpPopover.fragment.xml"
    <core:FragmentDefinition xmlns:vhd="sap.ui.comp.valuehelpdialog" xmlns:core="sap.ui.core" xmlns="sap.m">
<vhd:ValueHelpDialog id="valueHelp" title="{i18n>valueHelpTitle}" ok=".onValueHelpOkPress" cancel=".onValueHelpCancelPress"
    afterClose=".onValueHelpAfterClose" key="Firstname" descriptionKey="Lastname"></vhd:ValueHelpDialog>

目前,我没有收到任何错误消息,但我收到了以下输出:https://ibb.co/q58sk1V 当我 select 这些行时,我可以从键中看出它们是来自我的模拟 json odata 模型的对象,但单元格文本仍然是空白的。

我希望绑定值 PNummer、Firstname、Lastname 显示在单元格中,如模板中所示。

我想尝试但还没有机会或不知道如何尝试的事情:

任何帮助将不胜感激。

干杯

将列添加到 table 然后您可以在 table.

中看到具有实际值的行
 var oColumn = new sap.ui.table.Column({
        label: new sap.m.Label({text: "PNumber"}),
        template: new sap.m.Text({text: "{PNumber}"}),
        width: "100px"
});

if (oTable.bindRows) {
        oTable.addColumn(oColumn);
        oTable.bindAggregation("rows", "/");
}

出于某种原因,在值帮助对话框的 xml 视图弹出窗口片段中定义一个 table,该片段低于实际内部 table 导致问题得到修复,即使在我删除了 table 并且代码与它仍然无法正常工作时的代码基本相同。关于为什么会这样的任何想法?我很想知道这个问题。