0

我需要实现无限滚动,也就是说,当用户在具有“潜在”数千个项目的网格中滚动时。最初我有一个 SDT,它是我在网格上显示的那个。

这个想法是:

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

  2. 在网格中显示这 20 个

  3. 保存光标位置

这应该很快。当用户向下滚动时,循环 1、2 和 3 会重复直到完成。以免电网超载。

我在 wiki 中找到的最相似的内容是:

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

where variables count, Start(表示要加载多少以及从查询的哪个位置加载)和加载值的 sdt 是定义的。关键是我不清楚它是如何工作的。

它在 LOAD 中加载,但我看不到 Start 变量的值已更新,因此我将始终加载相同的 20 个项目。

如果有人实现了某些东西,那么我可以进行解释,一些线索或欢迎的 xpz !

问候和感谢

4

1 回答 1

0

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

&start和变量的值&count由 GeneXus 智能设备客户端应用程序自动管理和发送。这个想法是服务只需要返回这个范围内的记录,客户端会随着用户滚动而自动请求更多。

虽然它不应该对服务的实现产生影响,但细节是:

  • &start到目前为止,具有服务返回的当前(总)记录数。
  • &count是一个固定值。它是Rows网格属性上的一组。

因此,第一个请求将具有&start = 0&count = 10(默认情况下)。第二个请求将具有&start = 10and &count = 10,然后&start = 20以此类推。


注意:重要的是,如果客户端请求X个元素,那么服务会返回X。如果这没有发生,那么客户端将假定数据源已用尽,并且不再发出请求。

于 2017-02-24T21:55:19.570 回答