I have implemented paging for a large set of data in an application by allowing the user to enter a ‘page size’ number of how many records they want returned. This is passed to the stored procedure along with the row number of the last record, and retrieved via SELECT ROW_NUMBER() .. etc.
My issue is, this approach does not allow the user to filter or search the entire set of data. When they filter on the client side, they can only filter or sort the 100 or so rows they have obtained.
Is there a way of allowing for this kind of paging on the server side? So, maybe keep the data server side, and do the filtering or sorting there and return chunks of the data that they can page through? The reason for this is if they select to retrieve the entire data set, there is a considerable wait as it is a large amount of records.
The winforms application is using a standard soap web service but I may be able to implement a WCF service if needed.
Thanks for any advice or links! I’ve seen a few ways to do this but am not sure of the best way for a soap web service.
We faced the similar problem using asp.net/wcf. The best approach we end up was to use a client side grid e.g. jqgrid and jquery (ajax) to call a web service returning data (in json). However, being asp.net web form developer, we were initially not comfortable.
The alternative you talk about is to keep data on server (or session at times) but that really depends on data size.
Further, at one place, we have data that is not going to change very frequently, you may cache it to certain level or keep xml file on server etc. After each day, we update the cache through a back-end processing.
Hope this helps.