如何使用ag-grid表达式/值getter定义列时访问单元格值?

时间:2016-12-29 14:00:54

标签: ag-grid

如果已使用值getter定义 ag-grid 列定义,或者已为单元格定义了表达式,则该值将在网格上正常显示。但是,如果单元格正在使用单元格表达式/值getter,我无法找到访问给定单元格中的值的方法。试图通过api.forEachLeafNode访问数据,但似乎内存模型中没有这些数据。我找到的唯一方法是将数据导出为CSV,然后使用getDataAsCsv(params)对其进行解析。

导出数据是使用值getter访问网格中列的值的唯一方法吗?

为什么In Memory模型没有这个数据可供访问?

1 个答案:

答案 0 :(得分:2)

valueGetter在渲染阶段使用,它只在需要渲染单元格时计算。如果从不渲染单元格(例如,行低于当前可见的行),则永远不会执行valueGetter。结果永远不会存储在模型中,只会传递给cellRenderer。

所以你需要做的就是获取valueGetter的结果是使用api.getValue(colKey,rowNode)

colKey是列的ID。这可以是列本身(如果您从网格列api获得列)或列ID。列id是您可能想要使用的。列id按以下顺序分配给列1)colDef.colId如果存在2)colDef.field如果存在3)如果colId和field都缺失则生成。因此,如果您使用的是valueGetter,则可能不提供字段,因此只需提供colId。

rowNode是有问题的行。这是你使用api.forEachLeafNode时得到的。

api.getValue()方法是最近的,我知道它在版本7中 - 所以如果缺少,请确保你是v7或更高版本。