暂时禁用AG栅格中的行选择(角度)



我的网格如下所示(社区版(,允许用户选择行(列定义中定义的复选框(

<ag-grid-angular 
*ngIf='!isLoading && model.length > 0'
style="height: 70vh;" class="ag-theme-balham"
[rowData]="model" 
[animateRows]="true" 
[gridOptions]="gridOptions" 
[rowSelection]='rowSelection'
[enableCellTextSelection]="true" 
[overlayLoadingTemplate]="overlayLoadingTemplate"
(cellDoubleClicked)="onCellDoubleClicked($event)"
(selectionChanged)="onRecordSelected($event)" 
(firstDataRendered)="onFirstDataRendered($event)"
(gridReady)="onGridReady($event)">
</ag-grid-angular>

页面的一半显示网格,另一半显示所选记录的编辑。

保存表单时,我想禁用网格中的选择。这可能吗?(也许我很愚蠢,但想不出办法(

AG Grid文档指出,对于行单击选择(如使用复选框选择(,可以将suppressRowClickSelection设置为true以禁用选择。

您可以在组件属性(例如suppressRowClick(中保留布尔值,并将模板中的suppressRowClickSelection设置为等于suppressRowClick

您可以通过适合您项目的方法更新组件中的suppressRowClick

  1. @Input((来自父组件,或者
  2. 创建一个服务来管理suppressRowClick并从同级组件进行更新,或者
  3. 使用像NgRX或Akita这样的状态管理框架(过度使用,除非已经使用(

您似乎想要禁用整个网格。禁用整个网格的一种方法是使用覆盖层,您已经在使用覆盖层了,所以我可能误解了这个问题。如果你不想看到加载框,在html中,这一行可以做到:

<ag-grid-angular
#agGrid
[overlayLoadingTemplate]="overlayLoadingTemplate"
...

</ag-grid-angular>

在组件集中

overlayLoadingTemplate =
'<span></span>';

然后在组件中,当您希望禁用时,使用此功能设置覆盖:

this.gridApi.showLoadingOverlay();

这对我很有效,希望它能帮助其他人。

最新更新