Before start to use cell edit, please remember to install react-bootstrap-table2-editor
$ npm install react-bootstrap-table2-editor --save
- mode (required)
- blurToSave
- nonEditableRows
- timeToCloseMessage
- autoSelectText
- beforeSaveCell
- afterSaveCell
- errorMessage
- onErrorMessageDisappear
Assign a valid cellEdit
object can enable the cell editing on the cell. The default usage is click/dbclick to trigger cell editing and press ENTER
to save cell or press ESC
to cancel editing.
Note: The
keyField
column can't be edited
Following is the shape of cellEdit
object:
{
mode: 'click',
blurToSave: true,
timeToCloseMessage: 2500,
errorMessage: '',
beforeSaveCell: (oldValue, newValue, row, column) => { ... },
afterSaveCell: (oldValue, newValue, row, column) => { ... },
onErrorMessageDisappear: () => { ... },
nonEditableRows: () => { ... }
}
cellEdit.mode
possible value is click
and dbclick
. It's required value that tell react-bootstrap-table2
how to trigger the cell editing.
Default is false
, enable it will be able to save the cell automatically when blur from the cell editor.
cellEdit.nonEditableRows
accept a callback function and expect return an array which used to restrict all the columns of some rows as non-editable. So the each item in return array should be rowkey(keyField
)
Default is false, when enable it, react-bootstrap-table2
will help you to select the text in the text input automatically when editing.
NOTE: This props only work for
text
andtextarea
.
If a column.validator
defined and the new value is invalid, react-bootstrap-table2
will popup a alert at the bottom of editor. cellEdit.timeToCloseMessage
is a chance to let you decide how long the alert should be stay. Default is 3000 millisecond.
This callback function will be called before triggering cell update.
const cellEdit = {
// omit...
beforeSaveCell: (oldValue, newValue, row, column) => { ... }
}
If you want to perform a async beforeSaveCell
, you can do it like that:
const cellEdit: {
// omit...
beforeSaveCell(oldValue, newValue, row, column, done) {
setTimeout(() => {
if (confirm('Do you want to accept this change?')) {
done(); // contine to save the changes
} else {
done(false); // reject the changes
}
}, 0);
return { async: true };
}
};
This callback function will be called after updating cell.
const cellEdit = {
// omit...
afterSaveCell: (oldValue, newValue, row, column) => { ... }
};
This prop is not often used. Only used when you want to keep the error message in your application state and also handle the cell editing on remote mode.
This callback function will be called when error message discard so that you can sync the newest error message to your state if you have.