Bind Vertical Grid to Large Data via EF
- 3 minutes to read
The ASPxVerticalGrid control supports binding to large data sets using the EntityServerModeDataSource component. This component fully supports database server mode (i.e., it delegates all data processing to the DB server), and loads the minimum required amount of records to be displayed on the screen. This allows you to dramatically increase performance when working with large datasets.
Server mode can be enabled for any Entity Framework (EF) Data Model. The EntityServerModeDataSource component is designed for ASP.NET applications, and serves as the data source for the ASPxVerticalGrid control.
When an end-user performs data operations - sorting, grouping, etc., the EntityServerModeDataSource component analyzes the grid’s current state and generates smart queries to receive only those records that must be displayed on-screen. These requests are passed to the associated EF Data Model. The EF Data Model translates them into the required queries and executes them.
The EntityServerModeDataSource component is a read-only data source, starting with the Entity Framework version 4.1 and above, because it provides DbContext, as opposed to ObjectContext that was in version 4.0 and older. Thus, using the Entity Framework version 4.1 and above, you cannot perform data editing, inserting and deleting via the built-in ASPxVerticalGrid functionality.
To enable data modification operations, you need to handle the corresponding ASPxVerticalGrid events manually (ASPxVerticalGrid.RecordUpdating, ASPxVerticalGrid.RecordInserting, and ASPxVerticalGrid.RecordDeleting respectively). To learn how to handle these events, see the following KB article - How to implement common scenarios when using ASPxGridView bound with EntityDataSource / Entity Framework - Manual CRUD operations topic.
The EntityServerModeDataSource component allows you to bind ASPxVerticalGrid to the ADO.NET Entity Data Model and enable database server mode.
Create Data Classes
Add the ADO.NET Entity Data Model.
- Follow the wizard’s steps to generate a new data model using the code-first or database-first development approach.
- Save the generated model, close the EDMX diagram, and build the solution.
Connect to the Data Model using the EntityServerModeDataSource control
- Drag the EntityServerModeDataSource component and drop it onto the Page.
- Specify the data context type name using the EntityServerModeDataSource.ContextTypeName property.
- Specify the data table name using the EntityServerModeDataSource.TableName property.
- Bind the ASPxVerticalGrid control to the EntityServerModeDataSource component and specify the grid’s ASPxGridBase.KeyFieldName property.
Database Server Mode Limitations
In database server mode, ASPxVerticalGrid does not have simultaneous access to bound data in its entirety. This imposes certain limitations on the grid’s features, which are still available in regular binding mode. see the following topic for information on features that are not supported in server mode: Database Server Mode Limitations.