setPage method

Future<void> setPage(
  1. int page
)

Implementation

Future<void> setPage(int page) async {
  setState(() => isLoading = true);

  if (pageCache.containsKey(page)) {
    pageItems = pageCache[page]!;
  } else {
    final result = await widget.gridState.widget.loadData!(
      LoadCriteria(
        skip: (page - 1) * pageSize,
        take: pageSize,
        orderBy: widget.gridState._criteria.orderBy,
        filterBy: widget.gridState._criteria.filterBy,
      ),
    );

    pageCount = (result!.totalCount.toDouble() / pageSize.toDouble()).ceil();
    pageItems = result.items;
    pageCache[page] = pageItems;
  }

  setState(() {
    currentPage = page;
    isLoading = false;
  });
}