【问题标题】:Vaadin grid - filtering with lazy loadingVaadin 网格 - 延迟加载过滤
【发布时间】:2017-12-11 21:09:15
【问题描述】:

我有 vaadin 网格,它可以从盒子中加载延迟数据,这很棒。但由于某些原因,我有自定义过滤器,我通过

使用

CallbackDataProvider<> dataProvider.fetch(Query query)

查询对象具有分部分加载的参数(offsetlimit),所以我需要动态设置它(?) 并以某种方式监听网格滚动事件以加载下一部分数据当用户向下滚动时 (?)

Grid.dataComunicator 有字段 Range pushRows 但没有公共方法可以获取它。我所拥有的只是没有过滤数据的延迟加载网格或过滤数据的急切加载网格。

那么,有没有办法在vaadin网格元素中实现延迟加载过滤数据?

【问题讨论】:

  • 您查看过 DataProvider 的“fromFilteringCallbacks”吗?它可以帮助你
  • 是的,我有。实际上我使用CallbackDataProvider<> 作为网格的数据提供者。但是当我获取过滤后的数据时,与网格条件(查询数据的偏移量和限制)没有任何关联
  • 抱歉,我无法提供更多帮助,但是当滚动到达底部时 fetchfromBackEnd 对您没有帮助?我使用数据端点来保持简单
  • 不。如果我使用new Query(filter) 构造函数,字段limitoffset 保持默认状态0 和2147483647。所以所有数据都从数据库中获取。如果我将自定义值设置为limitoffset——只执行一个对数据库的查询。当我向下滚动时,什么也没有发生。
  • 如果您没有这样做,我会检查“Interface Grid.FetchItemsCallback”。否则联系他们,因为限制和偏移的问题没有多大意义。我目前正在使用网格,所以我可以自己尝试一下

标签: java vaadin vaadin-grid


【解决方案1】:

好的,通过使用ConfigurableFilterDataProvider<> 作为CallbackDataProvider<> 的包装器解决了问题。 所以,当我过滤表时,这个包装器会为所有查询添加过滤条件,并且像往常一样延迟加载数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-20
    • 2018-03-30
    • 1970-01-01
    • 2023-04-02
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多