无限滚动Genexus SD

时间:2017-02-24 12:32:16

标签: genexus genexus-sd

我需要实现一个无限滚动,也就是说,当用户在具有"潜在"的网格中滚动时成千上万的物品。最初我有一个SDT,它是我在网格上显示的那个。

这个想法是:

  1. SDT从20加载到光标位置

  2. 在网格中显示20个

  3. 保存光标位置

  4. 这应该很快。当用户向下滚动时,重复循环1,2和3直到完成。为了不使网格过载。

    我在维基中发现的最相似的是:

    http://wiki.genexus.com/commwiki/servlet/wiki?21311,HowTo%3A+External+Services+%28Scenario2%29

    在变量计数的地方,定义Start(表示加载的数量和要加载的查询的位置)以及加载值的sdt。关键是我不清楚它是如何工作的。

    它在LOAD中加载,但我没有看到Start变量的值被更新,所以我总是加载相同的20个项目。

    如果某人实施了某些内容,那么我可以接受解释,一些线索或欢迎xpz !!

    问候和感谢

1 个答案:

答案 0 :(得分:0)

首先,默认情况下,基于属性的网格已经具有此分页/无限滚动行为。我假设您询问基于变量的网格

Gene &start&count变量的值由GeneXus Smart Devices客户端应用程序自动管理和发送。我们的想法是服务只需返回此范围内的记录,客户端会在用户滚动时自动请求更多。

虽然它不应对服务的实施产生影响,但具体情况如下:

  • &start包含目前服务返回的当前(总)记录数。
  • &count是固定值。它是网格Rows属性上设置的一个。

因此,第一个请求将包含&start = 0&count = 10(默认情况下)。第二个请求将包含&start = 10&count = 10,然后是&start = 20,依此类推。

注意:如果客户端请求 X 元素,那么服务必须返回 X ,这一点很重要。如果没有发生这种情况,那么客户端将认为数据源已耗尽,并且不会再发出请求。