[Expand]General Information
[Expand]WinForms Controls
[Collapse]ASP.NET Controls and MVC Extensions
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]ASP.NET WebForms Controls
 [Collapse]ASP.NET MVC Extensions
  [Expand]Product Information
  [Expand]Getting Started
  [Expand]Common Concepts
  [Collapse]Grid View
    Main Features
    [Expand]Binding to Data
    [Expand]Data Representation Basics
    [Expand]Data Shaping and Manipulation
    [Expand]Focus and Navigation
    [Collapse]Data Editing and Validation
      Data Editing
      Edit Modes
      Edit Form
      Batch Edit
      Validate Data
      Initializing New Rows
   [Expand]Visual Elements
   [Expand]Member Tables
  [Expand]Tree List
  [Expand]Card View
  [Expand]Pivot Grid
   Rich Text Editor
  [Expand]Site Navigation and Layout
  [Expand]HTML Editor
  [Expand]Vertical Grid
  [Expand]Data Editors
  [Expand]Docking and Popups
  [Expand]File Management
  [Expand]Data and Image Navigation
  [Expand]Multi-Use Site Extensions
  [Expand]Spell Checker
  [Expand]Query Builder
 [Expand]Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[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)

Batch Edit


Starting from v18.2, the GridView supports callbacks in batch edit mode.

The ASP.NET MVC GridView extension allows you to modify a batch of grid data on the client side and send it to the server in a single request. This topic describes how to enable batch data editing operations within your GridView. It also provides an overview of batch edit, together with a description of its limitations.

Expanded Overview

In batch edit mode, grid data contained in a page can be edited using in-line editors. All user changes are maintained on the client side until either the Save changes button is clicked or all changes are canceled by clicking the Cancel changes button.

To prevent an end-user from editing column cells, set the column's GridColumnEditFormSettings.Visible property to false (using MVCxGridViewColumn.EditFormSettings.Visible). In this case, the column cells cannot be switched to edit mode. When an end-user navigates through cells using the TAB key, the column's cells are skipped.

If a grid contains unsaved data, it displays a "confirm" message before a grid callback is performed. The following list provides confirmation window settings.

Property (MVC) Property (WebForms) Description
GridViewSettings.SettingsText.ConfirmOnLosingBatchChanges ASPxGridTextSettings.ConfirmOnLosingBatchChanges Specifies the confirmation message text.
GridViewSettings.SettingsEditing.BatchEditSettings.ShowConfirmOnLosingChanges GridBatchEditSettings.ShowConfirmOnLosingChanges Specifies whether to display the confirmation window.

The GridViewBatchEditSettings.EditMode property (using GridViewSettings.SettingsEditing.BatchEditSettings.EditMode) allows you to specify which control element (Data Cell or Data Row) is used to edit data.

Expanded Enabling Batch Data Editing in the GridView

You can enable batch editing operations within the GridView in the following way.

  1. Add a controller action method that will implement the following data record operations: add new records, save updated records and delete existing records within a data source.

    This controller action method obtains an MVCxGridViewBatchUpdateValues<T, S> object as a parameter. The MVCxGridViewBatchUpdateValues<T, S> object contains the following items.

    Item Description
    MVCxBatchUpdateValues<T, S>.DeleteKeys (see MVCxBatchUpdateValues<T, S>.DeleteKeys) Contains a list of keys that correspond to grid records deleted on the client side in batch edit mode.
    MVCxBatchUpdateValues<T, S>.EditorErrors (see MVCxBatchUpdateValues<T, S>.EditorErrors) Provides access to the data source items' dictionary and the corresponding ModelStateDictionary items.
    MVCxBatchUpdateValues<T, S>.Insert (see MVCxBatchUpdateValues<T, S>.Insert) Contains a list of objects that are the grid records added on the client side in batch edit mode.
    MVCxBatchUpdateValues<T, S>.Update (see MVCxBatchUpdateValues<T, S>.Update) Contains a list of grid data items updated on the client side in batch edit mode.

    The action method should apply all changes obtained from the client side to the data source and return the GridView's Partial View.

    Controller code ("HomeController"):

  2. Define the callback route values within the PartialView.

    Navigate to the Partial View that contains GridView code. In the grid settings, define the callback route value to the action method (see previous step) that will handle grid callbacks for batch data modification. Set the ASPxGridViewEditingSettings.Mode property to Batch.


    Use the DevExpressEditorsBinder class to get valid editor values in the MVCxGridViewEditingSettings.BatchUpdateRouteValues method. Refer to the Binding Data Editors to Data topic for more information.

    Partial View code ("_GridViewPartial"):

    Note that it's necessary to assign DevExpressEditorsBinder to the ModelBinders.Binders.DefaultBinder property to replace the global default model binder.


  3. Enable the command column and command items.

    To allow end-users to manipulate grid data, add a command column to the grid's column collection and specify which commands (New, Delete) can be used by end-users.

    Partial View code ("_GridViewPartial"):

Preview changes before saving

You can preview and modify inserted, deleted and edited rows before you click the "Update" button and the control sends these changes to the server.

Set the GridViewBatchEditSettings.KeepChangesOnCallbacks property to true to show the "Show changes" button. This button allows you to display modified rows grouped by user operation type (delete, add, edit) and modify them. The "Save changes" or "Cancel changes" buttons allow you to end batch editing and save/cancel changes. To close the Changes Preview mode and display all grid rows (including modified ones), click "Hide changes".

By default, the grid displays only command items that allow you to edit data when the grid is in Changes Preview mode:

To display other command items (including custom and templated items) in Changes Preview mode, set a command item's GridViewToolbarItem.VisibleInBatchEditPreviewChanges property to true.

To customize the grid in Changes Preview mode, you can override the .dxgvBECP CSS class.


The GridView supports adaptivity in Preview Changes mode.

Expanded Appearance Customization

You can customize the visual presentation of modified data items using the following settings available through the GridViewSettings.Styles property.

The grid stores the Update and Cancel buttons within its Status Bar. Use the status bar's style settings to control these buttons appearance.

The following code snippets illustrate how to hide the Update and Cancel buttons.

  • Using the ASPxGridSettings.ShowStatusBar property.

  • Modifying the grid's dxgvStatusBar CSS class.

Expanded Batch Edit Mode Limitations

There are features and API members of the GridView extension control are not in effect in batch edit mode, since all user changes are maintained on the client side.

Unsupported features

The features below are not supported when the grid is in batch edit mode.

Unsupported server-side API

The following server-side events are not in effect when the grid is in batch edit mode.

The ValidationSettings.SetFocusOnError property has no effect because errors are handled at the row/cell level. Use the GridBatchEditSettings.AllowEndEditOnValidationError property to keep the editor focused until an end-user inputs the correct value.

Expanded See Also

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