我使用的ag-grid从外部数据源对象获取数据。该对象处理行的排序和过滤,并在完成后为ag-grid提供新的rowData
。
但我仍然希望能够使用ag-grid中的过滤器字段,并单击标题来更改排序。只是它不应该自己进行排序和过滤,而是通知外部对象。
有没有办法做到这一点?
我试图用虚拟对象覆盖模型的doSort
和doFilter
,但这完全破坏了网格。由于它们没有返回值,我希望它们只修改它们作为参数获得的对象,并可以像这样跳过。
this.gridApi.getModel().doFilter = () => {};
this.gridApi.getModel().doSort = () => {};
发布于 2019-07-22 16:45:27
好了,再看一看ag-grid代码,我想我找到了一个解决方案,使用了我最初的覆盖私有方法的粗糙方法。:/
this.gridApi.getModel().doFilter = function (changedPath) {
changedPath.forEachChangedNodeDepthFirst((rowNode) => {
rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;
rowNode.setAllChildrenCount(null);
}, true);
};
this.gridApi.getModel().doSort = function () {
this.rootNode.childrenAfterSort = this.rootNode.childrenAfterFilter.slice(0);
};
https://stackoverflow.com/questions/57093762
复制相似问题