[Expand]General Information
[Collapse]WinForms Controls
  .NET Core Support
 [Expand]What's Installed
 [Expand]Build an Application
 [Collapse]Controls and Libraries
  [Expand]Forms and User Controls
  [Expand]Messages, Notifications, and Dialogs
  [Expand]Editors and Simple Controls
  [Expand]Ribbon, Bars and Menu
  [Expand]Application UI Manager
  [Expand]Docking Library
  [Collapse]Data Grid
   [Expand]Get Started With Data Grid and Views
   [Expand]Data Binding
    Unbound Columns
   [Expand]Data Editing and Validation
   [Expand]Filter and Search
   [Expand]Focus and Selection Handling
    Format Cell Values
   [Expand]Master-Detail Relationships
   [Expand]Asynchronous Image Load
   [Expand]Export and Printing
   [Expand]Appearance and Conditional Formatting
    Split Presentation
    Row Preview Sections
     Infinite Scrolling
     Scrollbar Annotations
   [Expand]Batch Modifications
    Hit Information
    Popup Menus
   [Expand]Save and Restore Layout
   [Expand]Visual Elements
   [Expand]Design-Time Features
   [Expand]End-User Capabilities
    Included Components
  [Expand]Vertical Grid
  [Expand]Property Grid
  [Expand]Pivot Grid
  [Expand]Tree List
  [Expand]Gantt Control
  [Expand]Chart Control
  [Expand]Map Control
  [Expand]Rich Text Editor
  [Expand]Spell Checker
  [Expand]Form Layout Managers
  [Expand]Navigation Controls
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Sunburst Control
 [Expand]Common Features
  Get More Help
 [Expand]API Reference
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Infinite Scrolling

For large recordsets or when the exact record count cannot be determined in advance, you can supply data to the Data Grid in batches, continuously providing more records once an end-user approaches the bottom of the grid. In this case, the Data Grid functions in infinite scrolling mode, in which the scrollbar reflects the currently loaded amount of records. When new records are supplied, the scroll bar re-adjusts its size.

To provide data in batches (asynchronously or synchronously) and enable infinite scrolling in the Data Grid, bind the control to a VirtualServerModeSource and handle events the data source provides to supply data and perform requested data operations. The following are two main events you may need to handle:

  • VirtualServerModeSource.ConfigurationChanged -

    Fires on initial data load and reload in the bound grid control, and when the data grid's sort and filter configuration changes. Allows you to initialize the data source and (optionally) return an initial batch of records.

  • VirtualServerModeSource.MoreRows - Fires when a bound grid control asks the data source for a new batch of rows.

Data editing is disabled by default. To learn how to enable it, see VirtualServerModeSource.AcquireInnerList.


The Data Grid does not support data grouping when being bound to a VirtualServerModeSource.

For more information, see VirtualServerModeSource.

Demo: Infinite Scrolling module in the XtraGrid MainDemo

Is this topic helpful?​​​​​​​