【发布时间】:2014-12-19 08:47:02
【问题描述】:
我想在 SAPUI5-Table 组件中显示大量数据。我曾经通过动态加载来实现这些数据表,这意味着该表最初加载了大约 50 条记录。在用户向下滚动足够远之后,下一组 50 条记录被加载到表中。通过这种方式,我可以在没有任何性能问题的情况下显示包含 160.000 多个条目的表格。
现在我需要对 SAPUI5-Table 做同样的事情。我已经实现了服务器端,OData 服务已经可以使用了。我已经实现了客户端,但没有动态加载。该页面总是尝试从数据库中加载所有记录。
我怎样才能做到这一点?有没有任何预制的方法来实现这一点?我知道可以使用各种参数调用 OData 服务,这些参数指定它将提供的数据集,但我不知道如何在滚动时为这些调用制作表格?
【问题讨论】:
-
您尝试了 sap.ui.table.Table 还是只尝试了 sap.m.Table?
-
如果您使用的是
sap.m.Table,您可以查看growing属性here。使用sap.ui.table.Tablethreshold属性应该是描述here 的正确事物。它们都可以很好地绑定到OData Model。 -
好的,非常感谢!
-
关于调用 odata 服务的参数:您可以在 oData-URL-Call 中添加一些过滤器 (msdn.microsoft.com/en-us/library/hh169248(v=nav.71).aspx)。如果我必须实现这个,我会使用类 sap.ui.table.Table 的分页器和一个钩子“当单击下一个分页器页面时”我重新绑定模型只显示当前数据集 - >所以你的模型只包含当前在一个分页器页面中可见的数据量...您的前端保持良好的性能(而不是随着时间的推移推送越来越多的数据)