无论 ag-Grid 中的 colDef 可编辑值如何,如何禁用整个网格?

Posted

技术标签:

【中文标题】无论 ag-Grid 中的 colDef 可编辑值如何,如何禁用整个网格?【英文标题】:How disabled whole grid regardless of colDef editable value in ag-Grid? 【发布时间】:2021-03-22 10:51:17 【问题描述】:

您好,我想禁用 ag 网格。当然,我知道我可以通过在每个 colDef 的可编辑上设置 false 来禁用它。

但我想通过另一种方式来将网格状态与可编辑和不可编辑模式分开。如果网格处于不可编辑模式,则即使在其 colDef 上定义为可编辑,每一列也不应该是可编辑的。

我知道当网格处于不可编辑模式时,我可以更改列 def 的每个可编辑值。但我想相信还有另一种通用的方法来完成它。但是没找到。

你有什么想法吗?

谢谢。

【问题讨论】:

【参考方案1】:

我理解您的担忧。这取决于您何时将网格状态设置为不可编辑模式。所以让我们说如果我有网格数据并且在该数据中您可以再添加一列,因为rowIsNotEditable 名称可能会有所不同。因此,这意味着您希望哪一行现在可以在您的手中进行编辑,并且基于行,该行中的每一列都将根据其值是可编辑/不可编辑的。为此,您必须像这样将列可编辑定义设置为回调函数

editable: (params) => 
        if(params.data.rowIsNotEditable)
          return false;
        else
          return true;
      

这里是完整的working example

【讨论】:

【参考方案2】:

我知道我迟到了,但禁用整个网格的一种方法是使用覆盖在 html 中添加以下行:

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

在组件中设置

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

然后在组件中使用这个函数来设置你想要禁用的覆盖:

this.gridApi.showLoadingOverlay();

从你的问题中不确定你是否试图禁用整个网格,但这对我来说就像一个魅力希望它可以帮助其他人。

【讨论】:

以上是关于无论 ag-Grid 中的 colDef 可编辑值如何,如何禁用整个网格?的主要内容,如果未能解决你的问题,请参考以下文章

避免 - ag-grid 中的聚合

如何禁用 ag-grid 中的单元格选择?

如何使用空标题名称对 AG-Grid 中的列进行排序

如何在 ag-grid 中的单元格中使用和添加图标以指示该单元格是可编辑的

使用 ag-grid 对数据进行分组

在 ag-grid 中编辑后行移到顶部