Hi DVD,
Thanks for your patience.
We recommend you to use GridGroupingControl for binding to hierarchical datasources with good level of performance. You can disable the grouping support in it if you dont want. To achieve paging in GridGroupingControl, you need to handle QueryRecordMeetsFilterCriteria event which will be fired for all records just before displayed in the grid. In addition you need to maintain a hashtable that contains the position/index of the record. Then in QueryRecordMeetsFilterCriteria event handler you can check the position of that record whether it is belong to the first page(say, if position lies between 0 and 10) or in the second page(11 - 20) and set the e.Result based on that. If you set the e.Result to true, grid will display that record, else if you set it to false grid will not display that record.
Please refer to the following KnowledgeBase article. It demonstrate how to allow or restrict any record from displaying.
http://www.syncfusion.com/support/kb/grid/Default.aspx?ToDo=view&questId=245If you are using the virtual GridControl check the following sample which demonstrates the paging in virtual grid.
In QueryCellInfo, it checks for the data availability and loads the data as you scroll over. At the beginning of QueryCellInfo, there is a call to a DataSource method that ensures the requested row is available. Depending on it, the DataSource loads a 200-count range of records with the requested record in the middle. In this sample, loading new data creates a new 200 row datatable using code.
http://www.syncfusion.com/Support/user/uploads/Virtual_Paging_9fc74e34.zipLet me know if this helps.
Regards,
Rajagopal