Data Binding

Monday, August 2, 2021 Cold Storm 17 62.6
Tuesday, August 3, 2021 Warm Sunny 16 60.8
Wednesday, August 4, 2021 Warm Partly cloudy 16 60.8
Thursday, August 5, 2021 Warm Partly cloudy 16 60.8
Friday, August 6, 2021 Cold Cloudy 16 60.8

Our Blazor Data Grid allows you to display, manage, and manipulate tabular data with absolute ease. You can use the Data property to bind the grid to a strongly typed collection. Initialize this collection in the OnInitialized lifecycle method or before this method is invoked. To display data within our Blazor Grid, simply add columns to the markup and use the Field property to assign data fields as needed.

Asynchronous Data Binding

Exotic Liquids Charlotte Cooper Purchasing Manager UK London 49 Gilbert St. (171) 555-2222
New Orleans Cajun Delights Shelley Burke Order Administrator USA New Orleans P.O. Box 78934 (100) 555-4822
Grandma Kelly's Homestead Regina Murphy Sales Representative USA Ann Arbor 707 Oxford Rd. (313) 555-5735
Tokyo Traders Yoshi Nagase Marketing Manager Japan Tokyo 9-8 Sekimai Musashino-shi (03) 3555-5011
Cooperativa de Quesos 'Las Cabras' Antonio del Valle Saavedra Export Administrator Spain Oviedo Calle del Rosal 4 (98) 598 76 54

Use the DataAsync property to bind our Blazor Data Grid to a strongly typed collection that is loaded asynchronously (for instance, from an HTTP request). This property allows you to prevent excessive re-rendering and draw the grid's UI skeleton before data is loaded. The property specifies an asynchronous function that returns a Task<IEnumerable<T>> object and accepts a CancellationToken object as a parameter.

GitHub Example: How to bind the Data Grid to a strongly typed collection loaded asynchronously

Custom Data Binding

If your data is stored in a remote service and is loaded through a Web API, assign the data type to the grid's T parameter and use the CustomData property to implement desired data load logic. This property specifies an asynchronous function that accepts two parameters: a DataSourceLoadOptionsBase object that reflects the current grid state and a CancellationToken object that propagates cancellation notifications. In this function, you can use the ConvertToGetRequestUri and ConvertToHttpContent extension methods to generate HTTP requests with parameters based on data load options. The function should return a Task object.

On the remote service, implement an API controller and create action methods that use the DataSourceLoader class to create a LoadResult object based on load options.

In this demo, the Data Grid and the Customer ID and Ship Via combobox columns are bound to a remote Web API service. The ConvertToGetRequestUri extension method is used to generate a GET request URI with parameters based on data load options. The Web API controller uses the DataSourceLoader.Load method to load data.

Large Datasets

IN Marshall County Marshall County Marshall County 1987 3 $426.00 47,051
TX Fort Worth-Arlington Parker County Parker County 2005 1 $597.00 116,927
WI Lincoln County Lincoln County Lincoln County 2005 1 $410.00 28,743
LA New Orleans-Metairie-Kenner St. John the Baptist Parish St. John the Baptist Parish 1980 3 $497.00 45,924
TX Concho County Concho County Concho County 1996 2 $367.00 4,087
KY Lexington-Fayette Woodford County Woodford County 2013 2 $700.00 24,939
KS Saline County Saline County Saline County 1987 0 $239.00 55,606
MA Springfield Hampden County Southwick town 2007 3 $1,005.00 9,502
ME Lincoln County Lincoln County South Bristol town 1988 3 $499.00 892
IL Wabash County Wabash County Wabash County 1993 2 $370.00 11,947

In this demo, the DevExpress Blazor Data Grid is bound to a data collection with over a million rows (1GB+ in overall size). Navigate between grid pages, sort data, or filter data to experience our Blazor DataGrid’s responsiveness and performance capabilities when binding to large datasets.

You can use any of the ways demonstrated above (the Data, DataAsync, or CustomData property) to bind the grid to a large data collection. The collection must implement the IQueryable<T> interface. This demo uses the DataAsync property and Entity Framework Core.