Hi,
I am using XamDataGrid in my project, My Database having almost 7,50,000+ records.
Their are 8-10 Coloum from Table and we need to Bind this Table to XamDataGrid.
We dont require Paging, but can we do paging using scroll position and get only those records from database with current scroll position.
Is their any event to handle such type of scenario.
so we can load record to grid by paging(like cursors in record ADO ) using scroll or by any other technique.
Please help out me for this Problem.
If possible provide sample code.
Thanks.
Hello Amol,
Infragistics xamDataGrid supports mode called cell virtualization - meaning it will only instantiate fields / records when they are requested. This mode allows the grid to support a lot of records (potentially, millions). For more details on implementation, please check out the following help topic on Performance Optimization
http://help.infragistics.com/Help/NetAdvantage/WPF/2008.2/CLR3.X/html/xamData_Performance_Optimizations_Overview.html
and also make sure you are using deferred scrolling, as suggested in the following help topic:
http://help.infragistics.com/Help/NetAdvantage/WPF/2008.2/CLR3.X/html/xamData_Displaying_ToolTips_While_Scrolling_the_Grid.html
Hope this helps. If you have any specific additional questions, please let us know.
Hello,
Here is a simple project demonstrating the performance ( cell virtualization and deferred scrolling ) with million records. The scrolling is without any delay and the visualization of the records after scrolling is real time.
Screenshot:
Hmm that sounds very good, but could you be more specific... are you saying that:
1. If I load one million records including bitmaps accross the network into my client-side datasource, and then bind this fully populated local datasource to the grid, then - if the network admin hasn't killed my 1GB request - the grid virtualisation will display my local data in real-time.
2. If I have one million records exposed by a dataprovider, then the grid virtualisation will asynchronously request pages of data from my dataprovider based on the grid scroll event and hence only load minimal amounts of data accross the network with near realtime performance?
Personally, I don't see much practical value in (1).
Right, I see your point - this is a good question. xamDataGrid is an UI control and as such, has little control on how the data provider get's data (in your case, potentially over network). I think scenario #2 will be supported if your datasource supports that + if you use one of the modes of the xamDataGrid which does indeed only request what is needed. One such mode is "Deferred Scrolling", where data is not accessed from the provider until the user scrolls to it with the scrollbar (or in other programmatic way).
Also, something which we call "Lazy Loading" mode - - DataRecord and Cell objects are thin wrappers around records and field values that are only created when they are asked for. By delaying the creation of these objects, the impact on the control's memory footprint is kept at the lowest possible level at any given time.
The virtualization modes I think refer to something that is a bit different:
I think the full picture on performance can be seen from this topic:
HTH,
I'm very interested about the content behind this Link. Unfortunately, this link doesn't work. Do you have update these link ?
BR,
Nicolai Oertel
Nicolai,
The link in the current version of the help is: www.infragistics.com/.../xamdata-performance-optimizations-overview