如何处理在 SAP hana XS 应用程序中使用 1000 行 hana table 创建的 odata 服务

How to deal with odata service created with 1000 rows of hana table in SAP hana XS app

我在 Hana 中有一个 table 的 1000 行。

然后我在 table 上创建了一个 odata 服务,使用 xsodata 服务将数据公开为 odata。(工作正常)

现在我想在我的 XS 应用程序上将其用作列表。

问题是因为有 1000 行,列表没有加载所有数据,它显示了第一条记录,繁忙指示器显示了 1/1000。

控制台错误:getTimer 不是函数。 (这部分我没搞定)

现在我的问题是如何获取列表中的所有数据(1000 行),比如首先加载 10,然后向下滚动以显示更多。

谢谢

对你有好处:延迟加载是 SAPUI5 的内置功能:)

只需将一些额外的属性添加到您的列表中

<List id="contractList"
    growing="true"
    growingScrollToLoad="true"
    growingThreshold="10"
    items="{MyItems}">

    <StandardListItem title="{MyTitle}" description="{MyDescription}" press="onPress" />

</List>

growing 属性 启用(或禁用)延迟加载。 growingScrollToLoad 允许通过滚动加载。如果为 false,则有一个按钮可以加载更多项目。 growingThreshold 定义每次获取多少项目。

有关详细信息,请参阅 API:https://openui5.hana.ondemand.com/docs/api/symbols/sap.m.ListBase.html


但是这不会解决您的其他问题 (getTimer is not a function)。你应该在实现延迟加载之前尝试解决这个问题。

另请记住,对于包含超过 100 个条目的模型,您可能需要使用 sap.ui.model.Model.setSizeLimit() 设置限制以允许显示超过 100 个条目。

在您的 oModel 加载数据后,添加另一个代码如下

oModel.setSizeLimit(500)