要从AG-Grid的setQuickFilter方法中排除已选择的行,可以借助onFilterChanged回调函数实现筛选。在回调函数中,可以使用gridApi.getSelectedNodes()方法获取已选择的行并将其从筛选结果中排除。
以下是一个示例代码:
gridOptions: {
// 在onFilterChanged中筛选数据
onFilterChanged: function() {
// 获取所有筛选结果节点
var allNodes = gridOptions.api.getRenderedNodes();
// 获取已选择的节点
var selectedNodes = gridOptions.api.getSelectedNodes();
// 从所有节点中排除已选择节点
var filteredNodes = allNodes.filter(function(node) {
return selectedNodes.indexOf(node) === -1;
});
// 调用setRowData使用已筛选节点更新表格数据
gridOptions.api.setRowData(filteredNodes);
},
// ...其他选项
}
在这里,我们定义了onFilterChanged回调函数使其调用筛选逻辑。在此函数内,我们获取所有筛选结果节点和已选择的节点,并从所有节点中排除已选择节点。最后,我们调用setRowData方法使用已筛选节点更新表格数据。