Как отложить загрузку элементов в сетке vaadin в LitElement

У меня есть требование оптимально отображать бесконечные прокручиваемые данные в LitElement. Vaadin-grid кажется подходящим для варианта использования. Однако данных огромно. Итак, я пытаюсь лениво загружать данные кусками из бэкэнда. Этот backend api поддерживает возврат записей по частям (таким образом, что общее количество записей будет возвращено при первом вызове). Есть ли какой-либо способ ленивой загрузки данных кусками из бэкэнда в vaadin-grid с LitElement .

1 ответ

Итак, вот пример из упомянутого стартера:

        private async getGridData(params: GridDataProviderParams, callback: GridDataProviderCallback) {
    const index = params.page * params.pageSize;
    const data = await SamplePersonEndpoint.list(index, params.pageSize, params.sortOrders as any);
    callback(data ?? []);
  }

Как видите, параметры содержат page и pageSize, которые затем можно использовать в бэкэнде для разбиения на страницы.

SampleEndpoint использует это:

      public List<SamplePerson> list(int offset, int limit, List<GridSorter> sortOrder) {
    Page<SamplePerson> page = service
            .list(PagingUtil.offsetLimitTypeScriptSortOrdersToPageable(offset, limit, sortOrder));
    return page.getContent();
}
Другие вопросы по тегам