我的网格如下所示(社区版(,允许用户选择行(列定义中定义的复选框(
<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
:
- @Input((来自父组件,或者
- 创建一个服务来管理
suppressRowClick
并从同级组件进行更新,或者 - 使用像NgRX或Akita这样的状态管理框架(过度使用,除非已经使用(
您似乎想要禁用整个网格。禁用整个网格的一种方法是使用覆盖层,您已经在使用覆盖层了,所以我可能误解了这个问题。如果你不想看到加载框,在html中,这一行可以做到:
<ag-grid-angular
#agGrid
[overlayLoadingTemplate]="overlayLoadingTemplate"
...
</ag-grid-angular>
在组件集中
overlayLoadingTemplate =
'<span></span>';
然后在组件中,当您希望禁用时,使用此功能设置覆盖:
this.gridApi.showLoadingOverlay();
这对我很有效,希望它能帮助其他人。