public dataSourceChanged(state: DataSourceChangedEventArgs): void {
// perform add action in your service
if (state.action === "add") {
this.crudService.addRecord(state).subscribe(
() => {},
Triggered at failure
error => console.log(error), // get the error details
() => { // triggered at success
state.endEdit(); // calling end edit methods closes the edit form and refreshes the grid
}
);
}
// perform edit action in your service
else if (state.action === "edit") {
this.crudService.updateRecord(state).subscribe(
() => {},
error => console.log(error),
() => {
state.endEdit();
}
);
}
// perform delete action in your service
else if (state.requestType === "delete") {
this.crudService.deleteRecord(state).subscribe(
() => {},
error => console.log(error),
() => {
state.endEdit();
}
);
}
}
|
// Grid’s dataSourceChanged event handler
public dataSourceChanged(state: DataSourceChangedEventArgs) {
if (state.action === "edit") {
// Old data
var oldData = state.rowData;
// Updated data
var newData = state.data;
var changes = {};
var i = 0;
// Edit fields are retrieved from the data keys
var editFields = Object.keys(state.previousData);
while (i < editFields.length) {
// Old and updated data are compared and if they are modified, the changed data is pushed into a object variable
if (oldData[editFields[i]] !== newData[editFields[i]]) {
changes[editFields[i]] = newData[editFields[i]]
}
i++;
}
}
} |