Evoke Data Paging

If you have a large amount of data that could be transferred/transmitted from your database to your app then you may wish to turn on "Data Paging" for a Data Source. Consider you have 15,000 product records and you want a customer to have the option to review all of your products, retrieving, transmitting to the app and then formating in the UI 15,000 product records on a mobile phone across a 4G or even wifi connection could take a long time (both communications and screen rendering/processing locally). While putting up a message (see loading data msg as defined in the Template General Settings ) may help the solution is Evoke data paging.
For each Data Source defined in a Page Series, Evoke allows you to set Data Paging, separately for i) Apps running on desktop devices and ii) Apps running on Mobile devices. The options are:
  • NoDataPaging - The Default option. All data to be retrieved in one roundtrip to the repository.

  • PagingFullBuffering - Data to be retrieved (on-demand) in chunks (pages) with all retrieved chunks being retained in memory.

  • PagingUIOnly - All data to be retrieved in one roundtrip to the repository but UI (grid) display will be paginated (see below regarding searching, sorting and filtering).

Data Paging
For each of the options listed above the Page Size (number of records per page) can be set separately for desktop devices and Mobile devices.
Data Paging Settings on Pages
When Data Paging is used the user of the App will need to be able to see how many pages there are in total and navigate from one page of data to another. This is achieved via a Data Paging bar that is displayed on the appropriate data grid in the App (see image left).

The General Settings section of each multiple entity Template (as shown on the right) has a "Show data paging bar" check box. This is used in conjunction with Data Paging to show the data paging bar on a specific data grid. When data paging is used on a datasource (i.e. the data paging option is set to either PagingFullBuffering or PagingUIOnly) this checkbox should be checked on data grids/tables that display it in the UI.

Data Paging and Search, Sort, Filter
The data paging options on this page and the Evoke Searching, Sorting and Filtering options may be considered mutually exclusive. This is because if "pages" of data are downloaded individually then a search or sort on that page will only be on that page not the whole datasource. However, there are examples where the communications environment is fine for a large datasource and it is the rendering of thousands of records in the UI that takes the time.
In this case the data paging option PagingUIOnly may be used in conjunction with the Searching, Sorting and Filtering on a multi entity datasource/table.
The PagingUIOnly option means that all the data requested from the database will be passed to the app but the UI will be rendered in pages, with the first page being rendered first and the remaining pages rendered after the first page is displayed. In this way the Search, Sort and filter options are available across the whole data source.