AG Grid: обнаружение изменений и выдача предупреждений, когда пользователь пытается изменить другую строку, не сохраняя первую.
У нас есть новый проект в Angular 8, в котором мы используем AG Grid. Теперь пользователь хочет, чтобы проверка запускалась, если кто-то редактирует одну строку и без сохранения перемещается в другую запись / строку. он должен сказать сначала сохранить ваши данные.
Я пробовал то же самое с функциональностью onRowChange, но пользователь не хочет, чтобы проверка срабатывала при щелчке мыши, они хотят, чтобы проверка срабатывала только тогда, когда они что-то редактируют.
ниже приведен пример кода того, что я сделал, но это не полностью достигает цели. Может ли кто-нибудь мне в этом помочь? Я тоже пробовал onValueChange(), это не сработало.
Код:
onRowClick(event: any) {
if (this.cellChangeCount === 0) {
this.UnsavedNodeIndex = event.node.rowIndex;
this.UnsavedNodeID = event.data.ID;
}
this.commonAgGrid.commonAgGridfunc(event, this.gridApi, this.cellChangeCount, this.UnsavedNodeIndex, this.newRowClicked,
this.UnsavedNodeID, this.colName);
this.cellChangeCount++;
}
commonAgGridfunc(event: any, gridApi, cellChangeCount, UnsavedNodeIndex, newRowClicked, UnsavedNodeID, colName) {
cellChangeCount = cellChangeCount == 0 ? 0 : cellChangeCount;
cellChangeCount = newRowClicked == true ? 0 : cellChangeCount;
if (cellChangeCount !== 0 && (UnsavedNodeID != event.data.ID) && !newRowClicked) {
if (typeof UnsavedNodeID != "undefined") {
this.alertService.info("Save data first.");
setTimeout(() => this.alertService.clear(), 2000);
this.onBtStartEditing(gridApi, UnsavedNodeIndex, colName);
}
}
if (newRowClicked == true && (UnsavedNodeID != event.data.ID)) {
gridApi.stopEditing();
gridApi.setFocusedCell(0, colName);
gridApi.startEditingCell({
rowIndex: 0,
colKey: colName,
});
gridApi.forEachNode(node => node.rowIndex == 0 ? node.setSelected(true) : node.setSelected(false))
}
}
1 ответ
Вы можете попробовать использовать onCellvalueChanged() вместо rowClick.
onCellvalueChanged(event: any) {
if (this.cellChangeCount === 0) {
this.UnsavedNodeIndex = event.node.rowIndex;
this.UnsavedNodeID = event.data.ID;
}