View Full Version : Pagineable data and Grid filled at scroll time
Jean-Michel
09-29-2006, 11:19 AM
Hello,
I have to manage a grid with more than 50,000 remote records with a page size of 3,000 items. Filtering and sorting functions are applied to data in the current page only. But, displaying (and sorting) the 3,000 items degrade rendering performances.
So I was wondering if it was conceivable to have a mechanism which fills the UI grid while scrolling (like Rico as discussed in thread http://www.jackslocum.com/forum/viewtopic.php?t=74&start=15) but using current data page rather than remote data?
It will allow local sorting and filtering on a large page size with good rendering performances, and will keep the pagination system for remote data with UI components to navigate among page.
Thanks
Jean-Michel
Animal
09-29-2006, 12:03 PM
What's the point of having such a large page size?
But more to the point, what's the point in such a large dataset to be viewed by a person?
This is a UI to be read by a person, and people can't process that much data. It's not very useful to have a 50,000 element list persented to a person! If a query returns that many rows, more filtering is needed - a better WHERE clause.
jack.slocum
09-29-2006, 11:55 PM
I agree with Animal. Having 50,000 records to sort through is a lot, but even more important having 3,000 record page size is too much data for a single person to work on in most cases and is definitely going to kill performance. There is no plan to implement loading based on scrolling within a paged grid, the plan is to have another GridView which replaces manual paging with automatic paging based on scroll position. That view will require server-side sorting since it will have sparce population of row data.
With that said, you could extend the grid yourself to implement the feature you need. I'm just saying it isn't planned as part of the standard release.
Jean-Michel
10-02-2006, 04:38 AM
Thank you for your answer,
I, personally, agree too with Animal, unfortunately I didn't designed the application I'm working on. So I retain Jack proposition and am going to implement a view for my special need.
Concerning automatic loading, do you know that Rico doesn't build a table with empty rows? Their solution consists on a scroll component which is a 1px width div and a height equal to the height the table would have if it were totally built. The table itself contains only thirty rows that are filled according to the onscroll event fired by the scroll component.
It may be an alternative of sparse data.
jack.slocum
10-02-2006, 05:22 AM
The problem is really the sparse row data, not in the UI. The base class for all the data models makes extensive use of splice() which removes empty array elements autoirritatingally. I have already implemented a SparseDataSet object to replace the basic array which also provides a sized buffer and expires stale row data when it reaches a certain threshhold. It's just a matter of implementation and testing now.
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.