如何使用 ag-grid 禁用行?

Posted

技术标签:

【中文标题】如何使用 ag-grid 禁用行?【英文标题】:how to make row disabled with ag-grid? 【发布时间】:2021-01-08 11:47:48 【问题描述】:

我与 ag-grid 合作,我发现如何在文档中禁用列 (https://www.ag-grid.com/documentation-main/documentation.php) 但在阅读文档后,我从来没有发现我怎样才能让一行被禁用。

我已经尝试过editable: params => params.data.active === true. 也许我没看错或者那不存在。有人在这里有一些解决方案吗?

【问题讨论】:

editable: params => params.data.active 有效。您的代码还有其他问题。请添加minimal reproducible sample,以便其他人能够帮助您。 【参考方案1】:

TL;DR

库中没有选项可以禁用单行(基于视觉和键盘事件),我们可以禁用单行的唯一方法是对标题和后续单元格复选框使用 customCellRenderer,这允许完全控制复选框。 除此之外,还有其他三种方法可以根据值禁用 ag-grid 复选框,

1)这是使用 checkBoxSelection 参数,它会根据条件清空单元格。

checkboxSelection = function(params) 

   if (params.data.yourProperty) 
      return true;
   
   return false;

    这只会禁用点击事件并相应地设置样式,

cellStyle: params => return params.data.status? 'pointer-events': 'none', opacity: '0.4'  : '';

3)这将完全禁用它,因为您可以控制输入,但您可能必须使用字符串文字,

cellRenderer: (params) => 
       if (params.value) 
          return `<input type="checkbox" checked/>`;
       
       else 
          return `<input type="checkbox" />`;
       
 

你可以使用customCellRenderer(customCellRendererParams for props),headerCellRenderer(headerCellRendererParams for props),它接受一个完整的 JSX 组件。

    我认为这是最有帮助的,它允许您根据该列的行值选择 cellRenderer 组件。在ag-grid documentation 中对其进行了很好的描述。

【讨论】:

以上是关于如何使用 ag-grid 禁用行?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何获取 ag-grid 的所有行?

在 Ag-grid 中禁用复选框选择

如何在 ag-grid 中自动换行标题

如何使用 ag-grid 导出到具有 Angular 6 的大数据(50,000 行)的 excel 功能(内存不足错误)?

如何通过ag-grid中的角度材质菜单获取行数据