bindRows不是函数

时间:2018-07-25 02:34:00

标签: javascript sapui5

我正在尝试使用getTable().bindRows将NWGW的数据绑定到现有的javascript表以获取输入值帮助。

开发工具为WebIDE,已检查所有连接。所有oData服务都可以,并且可以提供实时数据和元数据。

但是我不断得到

  

未捕获的TypeError:oValueHelpDialog.getTable(...)。bindRows不是   功能。

仅当应用程序在小屏幕设备(电话或我在Chrome开发工具中选择电话布局)上运行时,这种情况才会发生。

我不知道这是否是因为它可以将odata绑定到表吗?手机对UI5的处理方式不同吗?

我将不胜感激。谢谢

-------更新-------

感谢Answer.SAP中的一个好人。这是sample project

重现该错误的步骤:

  • 将项目导入到Web IDE

  • 执行index.html

  • 打开Chrome开发工具

  • 选择设备:iPhone 6/7/8或任何手机

  • 刷新(F5)应用程序

  • 再次单击“值帮助”对话框>导致空白表

-------更新END -------

片段视图

    var oValueHelpDialog = new sap.ui.comp.valuehelpdialog.ValueHelpDialog({
        title : oController.getStrTextSite(),
        supportMultiselect : false,
        supportRanges : false,
        supportRangesOnly : false,
        key : oController.getStrWERKS(),
        descriptionKey : oController.getStrNAME1(),
        ok: function(oControlEvent) {
            oController.setDefaultSiteFromHelp(oControlEvent);
            oValueHelpDialog.close();
        },
        cancel: function(oControlEvent) {
            oValueHelpDialog.close();
        },
        afterClose: function() {
            oValueHelpDialog.destroy();
        }
    });     
    ...     
    return oValueHelpDialog;
}

控制器

onValueHelpForDefaultSite : function(oEvent) {          
        var oValueHelpDialog = this.getFragmentForValueHelp();
        oValueHelpDialog.open();            
        ...         
        oValueHelpDialog.getTable().bindRows(
            this.getEntitySet(
                "ODATA_10_DEFAULT_SITE_SET",
                "ODATA_10"
            )
        );
    }

1 个答案:

答案 0 :(得分:0)

事实证明,在移动设备中,功能bindRows()不存在,因此我们必须将其替换为功能bindItems()