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

Posted

技术标签:

【中文标题】ag-grid 将 cellRendererParams 设置为行数据中的值【英文标题】:ag-grid set cellRendererParams to values from the row data 【发布时间】:2021-03-13 18:44:26 【问题描述】:

我想通过 cellRendererParams 对象将数据发送到我的 cellRenderer 组件,但我不知道如何为此访问行数据。这是我想做的一个例子:

cellRendererParams: 
    label: currentRowData.myField + currentRowData.myOtherField

我不希望我的 cellRenderer 组件了解网格的数据结构,因为我可能会在具有不同行数据的其他网格中使用它。

【问题讨论】:

【参考方案1】:

有很多方法:

1)

valueGetter: (params) => ( property1: params.data.myField1 + params.data.myField2, property2: params.data.someOtherField ),
valueFormatter: ( property1: params.data.myField1 + params.data.myField2, property2: params.data.someOtherField ),

【讨论】:

是的,我使用了 #1,因为它来自 params 对象的 value 属性。【参考方案2】:

尝试使用valueGetter,如下所示:

valueGetter: (params) => params.data.myField + params.data.myOtherField

【讨论】:

我想我的例子有点简单,因为它只显示了 cellRendererParams 对象中的一项。您的建议仅适用于传递给 cellRenderer 组件的 params 对象的 value 属性。如果我想通过多个项目,例如 label: 'something', someBoolean: data.myBooleanField , someValue: dataRow.oneValue * dataRow.otherValue ,那么您的解决方案不起作用,但我非常感谢您的解决方案,因为它确实完成了简单的案例。 因此,我将您的解决方案更进一步,并且能够使其发挥作用。而不是 valueGetter 只返回一个值,我让它返回一个对象,例如valueGetter: (params) => ( property1: params.data.myField1 + params.data.myField2, property2: params.data.someOtherField )。如果您更新对此的答案,我会将其标记为已接受的答案。

以上是关于ag-grid 将 cellRendererParams 设置为行数据中的值的主要内容,如果未能解决你的问题,请参考以下文章

将 ag-grid 与 flexbox 一起使用

将 ag-grid 列绑定到数组

如何通过 ag-grid 将过滤器保留在 cookie 中?

为啥没有使用 vuejs 将新行添加到 ag-grid?

如何将两个数据表内容的滚动同步在一起(ag-grid)

以角度将列标题过滤器保存在 ag-grid 中