我有一个带有树数据的ag网格,它从视图中过滤出来 被删除的行
[
{
"name":"test",
"children":[
{
"name":"test",
"ROWSTATE":"DELETE"
},
{
"name":"test",
"ROWSTATE":"DELETE"
}
]
}
]
这是我的数据,过滤器配置就像这样
isExternalFilterPresent: () => { return true; },
doesExternalFilterPass: (node: RowNode) {
return node.data.ROWSTATE !== ROWSTATE.DELETE;
}
网格没有显示任何值,因为所有的chilrens都没有 我想通过过滤器功能。我想要做的是使网格 显示包含父级的行。
答案 0 :(得分:0)
这也发生在我身上。我作为一种解决方法所做的是修改gridOptions上的getNodeChildDetails
函数,以便检查是否所有子项都被删除。如果他们都是,那么不要返回任何东西。这样,ag-grid不会将该行视为父行。
var gridOptions = {
...
getNodeChildDetails: function(row) {
if (row.children) {
for (var i = 0; i < row.children.length; i++) {
if (row.children[i].ROWSTATE != 'DELETED') {
return {
group: true,
expanded: true,
children: row.children
};
}
}
}
},
...
};
这是低效的,因为它必须遍历所有子节点以检查是否所有子节点都被删除。但是,这是一种有效的解决方法。
不要忘记将组单元格渲染器添加到将负责子项扩展和收缩的列中:
var columnDefs = [
...
{
headerName: ...
cellRenderer: 'group'
}
];
当然,这适用于任何框架,无论是纯粹的javascript还是角度。