是否可以为 ag-grid 中的树数据组提供组件作为单元格渲染器?

Posted

技术标签:

【中文标题】是否可以为 ag-grid 中的树数据组提供组件作为单元格渲染器?【英文标题】:Is it possible to provide Component as Cell Renderer for tree data group in ag-grid? 【发布时间】:2019-03-27 13:42:24 【问题描述】:

文档仅给出了简单单元格渲染器的示例。 (https://www.ag-grid.com/javascript-grid-tree-data/) 但是如果我需要对树数据组进行更复杂的单元格渲染,我可以使用角度组件来代替简单的函数吗?

【问题讨论】:

【参考方案1】:

是的。您需要首先注册组件。请参阅他们的文档。其实很容易。里面的专栏Def你随便做cellRenderer: 'yourComponent',

https://www.ag-grid.com/javascript-grid-components/#registering-framework-components

【讨论】:

感谢您的回答!是的,对于一个普通的列,我们可以设置 cellRendererFramework 并且效果很好。但是,如果我们使用树数据,我们没有层次列的 columnDef,它的配置转到 GridOptions.autoGroupColumnDef。问题是:我们能否提供比 simpleFunction 更高级的渲染器。我希望我的渲染器是一个功能齐全的 Angular 组件。 您好,使用 cellRendererFramework 我正在使用功能齐全的 Angular 组件,它对我来说很好用。对于简单的情况,我会使用一个函数,但有时我会使用一个组件。另请参阅他们的文档:ag-grid.com/javascript-grid-cell-rendering 是的,我了解如何为普通列提供 cellRendererFramework。但是,在我的情况下,它是负责展开/折叠树的树数据层次结构列。我试图在那里提供 cellRendererFramework,但它对我没有用。我对 ag-grid 中的 TreeData 文档感到困惑【参考方案2】:

如果有人仍然需要答案:

您需要在 autoGroupCloumnDef 的 cellRendererParams 中提供 innerRenderer 属性,而不是使用 cellRenderer 属性在常规列中提供渲染器组件。

像这样: example from ag-grid documentation

【讨论】:

【参考方案3】:

我已经对自定义组组件渲染有同样的问题。

当像任何列定义一样使用cellRendererFramework 属性时,将不起作用,在案例组列中,您需要将innerRendererFramework 属性用于cellRendererParams 对象属性。

示例来自answer for another question:


    headerName: 'Group',
    cellRenderer: 'group',
    cellRendererParams: 
        innerRendererFramework: MyCustomCellRendererComponent
    

注意:这适用于 Ag-grid columnDefsdefaultColGroupDefautoGroupColumnDef 输入下的列定义(适用于我使用 autoGroupColumnDef

参考:

https://***.com/a/48390888/1908296 https://www.ag-grid.com/angular-data-grid/group-cell-renderer/ https://www.ag-grid.com/angular-data-grid/grouping-single-group-column/

【讨论】:

以上是关于是否可以为 ag-grid 中的树数据组提供组件作为单元格渲染器?的主要内容,如果未能解决你的问题,请参考以下文章

避免 - ag-grid 中的聚合

ag-grid 将 cellRendererParams 设置为行数据中的值

ag-Grid:我如何对 ICellRendererAngularComp 进行单元测试

C#中的树数据结构

vue.js:包含组件的树视图

如何更改 ag-grid 行组缩进?