在ts中我有这个:
{
headerName: '', field: 'delete', filter: 'text', editable: false,
cellRenderer: (params) => {
let eDiv = document.createElement('div');
eDiv.innerHTML = '<span class="delete-btn"><button class="btn-simple"><i class="fa fa-trash"></i>Izbrisati</button></span>';
let eButton = eDiv.querySelectorAll('.btn-simple')[0];
this.gridoptions.api.stopEditing(true);
eButton.addEventListener('click', () => {
this.selectedMSISDNArray.rowData.splice(this.selectedMSISDNArray.rowData.indexOf(params.data), 1);
this.gridoptions.api.setRowData(this.selectedMSISDNArray.rowData);
this.message.info( params.data.msisdn + ' je uspješno uklonjen!');
});
return eDiv;
}
}
这是我的网格:
<ag-grid-angular *ngIf="selectedMSISDNArray&&selectedMSISDNArray.rowData&&selectedMSISDNArray.rowData.length&&activeTab===2" (cellEditingStopped)='cellValueChanged($event)' (selectionChanged)="onSelectionChanged($event)" #agGrid style="width: 100%; height: 300px;" class="ag-fresh" [gridOptions]="gridoptions" [columnDefs]="columnDefs" [rowData]="selectedMSISDNArray.rowData"></ag-grid-angular>
问题是我只希望此按钮点击不调用cellEditingStopped
事件。有什么建议吗?
答案 0 :(得分:0)
单击按钮时必须停止事件传播。
试试这个:
{
headerName: '', field: 'delete', filter: 'text', editable: false,
cellRenderer: (params) => {
let eDiv = document.createElement('div');
eDiv.innerHTML = '<span class="delete-btn"><button class="btn-simple"><i class="fa fa-trash"></i>Izbrisati</button></span>';
let eButton = eDiv.querySelectorAll('.btn-simple')[0];
this.gridoptions.api.stopEditing(true);
eButton.addEventListener('click', (event) => {
/**** Added this line ****/
event.stopPropagation();
this.selectedMSISDNArray.rowData.splice(this.selectedMSISDNArray.rowData.indexOf(params.data), 1);
this.gridoptions.api.setRowData(this.selectedMSISDNArray.rowData);
this.message.info( params.data.msisdn + ' je uspješno uklonjen!');
});
return eDiv;
}
}