У меня есть требование, согласно которому после редактирования строки в сетке ag нельзя разрешить редактирование другой строки, если эта строка не была сохранена.
есть ли способ добиться этого?
Я использую метод onRowClick ($ event) для проверки, образец указан ниже:
onRowClick(event: any) {
if (this.cellChangeCount === 0) {
this.UnsavedNodeIndex = event.node.rowIndex;
this.UnsavedNodeID=event.data.ID;
console.log(event.node);
}
if (this.cellChangeCount !== 0 && (this.UnsavedNodeID!=event.data.ID ) && !this.newRowClicked) {
if(typeof this.UnsavedNodeID !="undefined"){
this.alertService.info("Save data first.");
this.onBtStartEditing();
}
}
if(this.newRowClicked==true && (this.UnsavedNodeID!=event.data.ID ) ){
this.gridApi.stopEditing();
this.gridApi.setFocusedCell(0, 'ColName');
this.gridApi.startEditingCell({
rowIndex: 0,
colKey: 'ColName',
});
this.gridApi.forEachNode(node=> node.rowIndex==0 ? node.setSelected(true) : node.setSelected(false))
}
this.cellChangeCount++
}
onBtStartEditing() {
this.gridApi.stopEditing();
this.gridApi.setFocusedCell(this.UnsavedNodeIndex, 'COlName');
this.gridApi.startEditingCell({
rowIndex: this.UnsavedNodeIndex,
colKey: 'ColName',
});
this.gridApi.forEachNode(node=> node.rowIndex==this.UnsavedNodeIndex ? node.setSelected(true) : node.setSelected(false))
}
на данный момент это работает, но я ищу какое-нибудь надежное решение, если оно есть. Спасибо