我需要实现一个无限滚动,也就是说,当用户在具有"潜在"的网格中滚动时成千上万的物品。最初我有一个SDT,它是我在网格上显示的那个。
这个想法是:
SDT从20加载到光标位置
在网格中显示20个
保存光标位置
这应该很快。当用户向下滚动时,重复循环1,2和3直到完成。为了不使网格过载。
我在维基中发现的最相似的是:
http://wiki.genexus.com/commwiki/servlet/wiki?21311,HowTo%3A+External+Services+%28Scenario2%29,
在变量计数的地方,定义Start(表示加载的数量和要加载的查询的位置)以及加载值的sdt。关键是我不清楚它是如何工作的。
它在LOAD中加载,但我没有看到Start变量的值被更新,所以我总是加载相同的20个项目。
如果某人实施了某些内容,那么我可以接受解释,一些线索或欢迎xpz !!
问候和感谢
答案 0 :(得分:0)
首先,默认情况下,基于属性的网格已经具有此分页/无限滚动行为。我假设您询问基于变量的网格 。
Gene &start
和&count
变量的值由GeneXus Smart Devices客户端应用程序自动管理和发送。我们的想法是服务只需返回此范围内的记录,客户端会在用户滚动时自动请求更多。
虽然它不应对服务的实施产生影响,但具体情况如下:
&start
包含目前服务返回的当前(总)记录数。&count
是固定值。它是网格Rows
属性上设置的一个。因此,第一个请求将包含&start = 0
和&count = 10
(默认情况下)。第二个请求将包含&start = 10
和&count = 10
,然后是&start = 20
,依此类推。
注意:如果客户端请求 X 元素,那么服务必须返回 X ,这一点很重要。如果没有发生这种情况,那么客户端将认为数据源已耗尽,并且不会再发出请求。