【问题标题】:Table dynamic loading SAPUI5 / UI5表动态加载 SAPUI5 / UI5
【发布时间】: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.Table threshold 属性应该是描述here 的正确事物。它们都可以很好地绑定到OData Model
  • 好的,非常感谢!
  • 关于调用 odata 服务的参数:您可以在 oData-URL-Call 中添加一些过滤器 (msdn.microsoft.com/en-us/library/hh169248(v=nav.71).aspx)。如果我必须实现这个,我会使用类 sap.ui.table.Table 的分页器和一个钩子“当单击下一个分页器页面时”我重新绑定模型只显示当前数据集 - >所以你的模型只包含当前在一个分页器页面中可见的数据量...您的前端保持良好的性能(而不是随着时间的推移推送越来越多的数据)

标签: odata sapui5


【解决方案1】:

通常,绑定到OData Model 的表会为您完成大部分工作。

如果您使用的是sap.m.Table,您可以查看growing 属性here

可以在List 部分的Explored app 中找到有关如何使用sap.m.Table 进行分页的示例。

使用sap.ui.table.Tablethreshold 属性控制提取大小,并在here 中进行了描述。此外,您可以选择navigationMode。它可以是分页器,也可以是滚动条。

sap.ui.table.Table 的一个非常简单的示例如下所示:

var oModel = new sap.ui.model.odata.ODataModel("<yourURL>", true);
var oTable = new sap.ui.table.Table({
          columns : [], //set up columns as usual
          threshold : 50 //your fetch size here
});
oTable.setModel(oModel).bindRows("/<yourEntity>");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多