Custom data adapter with an IQueryable

Hi,


I have created a Custom DataApapter class and overridden the "Read" function there. In this I put an IQueryable DataSource.

This works also so far. However, I noticed that the "Read" function is called only once. Even if one has a paging. This means that all data in the pivot is always loaded, which makes the pivot with a high amount of data very slow.


Is there a way to use the pivot with the DataAdapter so that it only loads the data that is displayed by the paging and not always everything?


Thanks for the feedback.


Best regards

Patrick


1 Reply

AP AngelinFaithSheeba PaulvannanRajadurai Syncfusion Team July 5, 2023 08:44 AM UTC

Hi Patrick,


We would like to inform you that the values in the Pivot Table are always aggregated from the entire data source. Therefore, we cannot retrieve partial records in order to render the pivot table. However, you can avoid performance issues by using virtualization, paging, and data compression features while binding large amount of data to the pivot table. Please refer to the below online demo and UG documentation to more about the virtualization, data compression and paging features in the pivot table.


Virtualization:

Demo: https://blazor.syncfusion.com/demos/pivot-table/virtual-scrolling?theme=fluent


UG: https://blazor.syncfusion.com/documentation/pivot-table/virtual-scrolling


DataCompression:

https://blazor.syncfusion.com/documentation/pivot-table/virtual-scrolling#data-compression


Paging:

Demo: https://blazor.syncfusion.com/demos/pivot-table/paging?theme=fluent


UG: https://blazor.syncfusion.com/documentation/pivot-table/paging


However, if you are using Blazor WASM application, we recommend you to use our Blazor server-side engine support with pivot table. Because while utilizing server-side engine, the aggregation will be executed in a different controller project, resulting in a faster execution of pivot table with aggregation than when using a client-side engine. Whereas, using our pivot table with server-side engine and virtual scrolling or paging support, you can execute a million records in less than 12 seconds to render the pivot table initially. Further UI operations will take less than half the time of the initial rendering. Furthermore, we also have data compression option in our server-side engine that allows us to compress a large number of records into unique record counts that can then be aggregated and used for pivot table rendering. And this compressed data will always be used for further operations, reducing looping complexity and improving pivot table performance.


Please refer to the document link below for more information on server-side engine support.


Server-side engine:

https://blazor.syncfusion.com/documentation/pivot-table/server-side-pivot-engine


Please let us know if you have any other queries.


Regards,

Angelin Faith Sheeba.


Loader.
Up arrow icon