Log In
[Expand]Welcome to DevExpress .NET Documentation
[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
    Overview - GridView
    Main Features - GridView
    [Expand]Binding to Data
    [Expand]Data Representation Basics
    [Expand]Focus and Navigation
    [Collapse]Data Editing and Validation
      Data Editing
      Edit Modes
      Edit Form
      Batch Editing
      Initializing New Rows
   [Expand]Visual Elements
   [Expand]Member Tables
  [Expand]Card View
  [Expand]Vertical Grid
  [Expand]Rich Text Editor
  [Expand]HTML Editor
  [Expand]Image and Data Browsing
  [Expand]Docking and Popups
  [Expand]Navigation and Layout Extensions
  [Expand]File Management
  [Expand]Multi-Use Site Extensions
  [Expand]Pivot Grid
  [Expand]Tree List
  [Expand]Data Editor Extensions
  [Expand]Report Extensions
 [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]Document Server
[Expand]Report Server
[Expand]eXpressApp Framework
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

Batch Editing

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 editing, as well as a description of its limitations.

Expanded Overview

In batch editing mode, the grid data contained in a page can be edited using in-line editors. All user changes are maintained on the client side until 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 (through MVCxGridViewColumn.EditFormSettings.Visible) property to false. 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.


Since data modification is performed on the client side in batch edit mode, the server-side ASPxGridView.StartEdit (through MVCxGridView.StartEdit) and ASPxGridView.AddNewRow (through MVCxGridView.AddNewRow) methods are not in effect. Additionally, the client-side ASPxClientGridView.AddNewRow (through MVCxClientGridView.AddNewRow) method does not perform a callback.

If a grid contains modified data, it displays a "confirm" message before a grid callback is performed. You can customize the message text using the ASPxGridTextSettings.ConfirmOnLosingBatchChanges (through GridViewSettings.SettingsText.ConfirmOnLosingBatchChanges) property, or you can disable it by setting the GridBatchEditSettings.ShowConfirmOnLosingChanges (by setting the GridViewSettings.SettingsEditing.BatchEditSettings.ShowConfirmOnLosingChanges) property to false.

The GridViewBatchEditSettings.EditMode (through GridViewSettings.SettingsEditing.BatchEditSettings.EditMode) property allows you to specify which control element (data cell or data row) is used to edit the 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
    MVCxGridBatchUpdateValues<T, S>.DeleteKeys Contains a list of keys that correspond to grid records deleted on the client side in batch edit mode.
    MVCxGridBatchUpdateValues<T, S>.EditorErrors Provides an access to the dictionary of data source items and the corresponding ModelStateDictionary items.
    MVCxGridBatchUpdateValues<T, S>.Insert Contains a list of objects that are the grid records added on the client side in batch edit mode.
    MVCxGridBatchUpdateValues<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 the GridView code. In the grid settings, define the callback route value to the action method (see the previous step) that will handle grid callbacks for batch data modification. Set the ASPxGridViewEditingSettings.Mode (through GridViewSettings.SettingsEditing.Mode) property to Batch.

    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"):

Expanded Appearance Customization

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

Expanded Batch Edit Mode Limitations

Some 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 will inputs the correct value.

Unsupported client-side API

The following members of the MVCxClientGridView are not in effect when the grid is in batch edit mode:

ASPxClientGridView.GetTopVisibleIndex property doesn't return the correct values if rows are deleted/inserted. Use the ASPxClientGridViewBatchEditApi.GetRowVisibleIndices instead.

Expanded See Also

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