KendoReact Data Grid Editing Overview
The KendoReact Data Grid enables you to create, update, and delete data records.
Getting Started with the KendoReact Data Grid Editing
-
Set the
editField
property of the Grid—editField
will indicate the editable data items and is part of the temporary data items that are used during editing. For the data items in the edit mode, set the edit state in theireditField
.<Grid editField="inEdit"
dataItem.inEdit = true;
-
Create a new data collection which has the edit state of each data item. In the following example, the id of the edited item is stored in the application state.
<Grid data={this.state.data.map((item) => ({ ...item, inEdit: item.ProductID === this.state.editID }) )}
-
Set the type of the editor per column using the
editor
property of the GridColumn component. The built-in editor types aretext
,date
,number
andboolean
. The usage of each editor for each column depends on the type of the edited data. To disable the editing for any column, set the GridColumn editable property tofalse
.<Grid> <Column field="ProductID" title="Id" editable={false} /> <Column field="ProductName" title="Name" editor="text" /> <Column field="FirstOrderedOn" title="First Ordered" editor="date" /> <Column field="UnitsInStock" title="Units" width="150px" editor="numeric" /> <Column field="Discontinued" title="Discontinued" editor="boolean" /> </Grid>
-
Define a function for the
onItemChange
event which will handle the data changes during editing. Inside the event, all relevant data, such as the edited data item, the newly entered value, or the edited field will be available asonItemChange
parameters.<Grid onItemChange={this.onItemChange}>
onItemChange = (event) => { const editedItemID = event.dataItem.ProductID; const data = this.state.data.map(item => item.ProductID === editedItemID ? {...item, [event.field]: event.value} : item ); this.setState({ data }); };
Preventing column editing
To prevent a column from being editable, set the editable
prop to false
for the required column:
```jsx-no-run
<Column field="ProductID" title="Id" width="50px" editable={false} />
```
The following example demonstrates how to implement the editing of the Grid data.
KendoReact Data Grid Editing APIs
- Inline editing
- Inline editing with custom editors
- In-cell editing
- In-cell editing of all cells
- Editing with external popup form
- Editing with external Redux Form