Grid Inline Editing
Inline Grid editing lets users modify all values on a Grid row. The edit process starts and ends with clicking of command buttons on the respective row. Inline editing can be more intuitive for beginner users, compared to in-cell editing.
Make sure to read the Grid CRUD Operations article first.
Basics
To use inline Grid editing, set the Grid EditMode parameter to GridEditMode.Inline. During inline editing, only one table row is in edit mode at a time. Users can:
- Press Tab or Shift + Tab to focus the next or previous editable cell.
- Click the Save command button or press Enter to confirm the current row changes and exit edit mode.
- Click the Cancel command button or press ESC to cancel the current row changes and exit edit mode.
- Peform another Grid operation, for example, paging or sorting, to cancel the current edit operation.
Commands
Inline add, edit, and delete operations use the following command buttons:
- Add
- Delete
- Edit
- Save
- Cancel
Without using the above command buttons, the application can:
- Manage add or edit mode programmatically through the Grid state.
- Modify data items directly in the Grid data source. Rebind the Grid afterwards.
In inline edit mode, the Grid commands execute row by row and the corresponding Grid events also fire row by row. This is similar to popup editing and unlike in-cell editing, where commands and events relate to cells.
When validation is not satisfied, clicking the Save, Delete or Add command buttons have no effect, but users can still navigate between all input components in the row to complete the editing.
New Row Position
You can control whether a newly added item appears at the top or bottom of the Grid. Use the NewRowPosition parameter to specify the position.
The NewRowPosition parameter accepts values from the GridNewRowPosition enum:
Top(default)—Inserts the new item at the top of the view.Bottom—Inserts the new item at the bottom of the view.
Integration with Other Features
Here is how the component behaves when the user tries to use add and edit operations together with other component features. Also check the common information on this topic for all edit modes.
Add, Edit
This section explains what happens when the component is already in add or edit mode, and the user tries to add or edit another row.
- If the validation is not satisfied, the component blocks the user action until they complete or cancel the current add or edit operation.
- If the validation is satisfied, then editing aborts and the component fires
OnCancel.
Delete, Filter, Group, Page, Search, Sort
If the component is already in add or edit mode, and the user tries to perform another data operation, then editing aborts and the component fires OnCancel.
Deleting items that are currently in edit mode fires OnDelete with a cloned data item instance.
Examples
Basic
The example below shows how to:
- Implement inline Grid CRUD operations with the simplest and minimal required setup.
- Use the
OnCreate,OnDeleteandOnUpdateevents to make changes to the Grid data source. Item deletion relies on Delete command buttons and theOnDeletehandler receives one data item in its event argument. When using theGridToolBarDeleteToolwith multiple row selection, theOnDeletehandler may receive multiple data items for deletion. - Rebind the Grid automatically through the
OnReadevent after the create, delete, or update operation is complete. When using theDataparameter, you must either query the data source again, or modify the localDatacollection manually. - Use
DataAnnotationsvalidation for some model class properties.
Basic Grid inline editing configuration
Advanced
The example below shows how to:
- Implement inline Grid CRUD operations with all available events and various built-in customizations.
- Use the
OnCreate,OnDeleteandOnUpdateevents to make changes to the Grid data source. Item deletion relies on Delete command buttons and theOnDeletehandler receives one data item in its event argument. When using theGridToolBarDeleteToolwith multiple row selection, theOnDeletehandler may receive multiple data items for deletion. - Use the
OnModelInitevent to provide model instances with some default values before add and edit operations start. - Use the
OnAddevent to provide some default values before add operations start. - Use the
NewRowPositionparameter to set there new rows are added to the existing data. - Reload the Grid
Dataafter making changes to the data source. When using the GridOnReadevent, the component will fireOnReadand rebind automatically. - Apply the user changes to the Grid
Dataparameter to spare one read request to the database. - Use
DataAnnotationsvalidation for theNameandReleaseDateproperties. - Define the
Idcolumn as readonly withEditable="false". - Customize the
DescriptionandDiscontinuedcolumn editors without using anEditorTemplate. - Render the Delete command button conditionally if
Discontinuedistrue. - Confirm Delete commands with the built-in Grid Dialog. You can also intercept item deletion with a separate Dialog or a custom popup.
- Cancel the
OnAddandOnEditevents conditionally, so that the Grid does not go into edit mode. - Cancel the
OnCancelevent conditionally, so that the Grid remains in edit mode and the user doesn't lose their unsaved changes.
Advanced Grid inline editing configuration