I’ve made small demo how to create easily endless scrolling of almost 2 mil. records (exact count is 1770607) using RadGridView for WPF.

When you reach the bottom of the vertical scrollbar, more data will be retrieved on-the-fly from the data-base server:


For asynchronous data loading you can use BackgroundWorker:

BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);

void worker_DoWork(object sender, DoWorkEventArgs e)
NorthwindDataContext context = new NorthwindDataContext(); queryable = from o in context.Orders
from od in context.Order_Details select new { od.OrderID, od.ProductID, od.UnitPrice, od.Quantity, od.Discount, o.CustomerID, o.EmployeeID, o.OrderDate };

and on GridViewScrollViewer VerticalScrollEnded event you can get more records:

void ScrollOwner_VerticalScrollEnded(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
    if (((ScrollBar)e.OriginalSource).Maximum == e.NewValue)
        pageSize = pageSize + 50;
} }

In this demo you can find also how to cancel the default grid sorting and perform your own sorting and how to make nice loading image for your asynchronous operations.



About the Author

Vladimir Enchev

is Director of Engineering, Native Mobile UI & Frameworks


Comments are disabled in preview mode.