gridOptions.api.getSelectedRowsAFTERSORTING()
gridOptions.api.getSelectedRowsAFTERSORTING()
当我在排序的数据集上使用 gridOptions.api.getSelectedRows() 时,数组是根据项目的原始(而非排序)顺序创建的。有没有办法根据项目的实际顺序获取数组?
在网格 API Docs 中有一个名为 forEachNodeAfterFilterAndSort
的方法,它允许您迭代筛选和排序的节点。然后,您可以在迭代这些节点时将它们添加到数组中。
解决方案参见https://github.com/ceolter/ag-grid/issues/1451:
array = [];
gridOptions.api.forEachNodeAfterFilterAndSort(function(node) {
array.push(node.data);
});
此函数将 return 按排序顺序选择节点(改编自 jathri 的回答):
function getSelectedRows (gridApi) {
const selectedNodes = [];
// Need to call this instead of getSelectedNodes to preserve sorted order
gridApi.forEachNodeAfterFilterAndSort(function mapSortedNode ({ data, selected }) {
if (selected) {
selectedNodes.push(data);
}
});
return selectedNodes;
}
当我在排序的数据集上使用 gridOptions.api.getSelectedRows() 时,数组是根据项目的原始(而非排序)顺序创建的。有没有办法根据项目的实际顺序获取数组?
在网格 API Docs 中有一个名为 forEachNodeAfterFilterAndSort
的方法,它允许您迭代筛选和排序的节点。然后,您可以在迭代这些节点时将它们添加到数组中。
解决方案参见https://github.com/ceolter/ag-grid/issues/1451:
array = [];
gridOptions.api.forEachNodeAfterFilterAndSort(function(node) {
array.push(node.data);
});
此函数将 return 按排序顺序选择节点(改编自 jathri 的回答):
function getSelectedRows (gridApi) {
const selectedNodes = [];
// Need to call this instead of getSelectedNodes to preserve sorted order
gridApi.forEachNodeAfterFilterAndSort(function mapSortedNode ({ data, selected }) {
if (selected) {
selectedNodes.push(data);
}
});
return selectedNodes;
}