UI Grid自定义筛选行无法取消选中问题求助
UI Grid多列自定义筛选重置时清除选中行的解决办法
在UI Grid多列自定义筛选场景中,点击「重置所有筛选」按钮时,筛选条件能正常重置,但筛选弹窗内的选中行仍保持选中状态。已知单独清除单个筛选选中行可使用代码:
$scope.gridPopupApi.selection.clearSelectedRows();
要实现批量清除所有筛选弹窗的选中行,可按以下方式处理:
- 遍历Grid的所有列,针对每个启用自定义筛选的列,调用其弹窗API的清除选中行方法:
// 遍历所有列 angular.forEach($scope.gridApi.grid.columns, function(column) { // 检查列是否存在自定义筛选弹窗API if (column.filters[0] && column.filters[0].gridPopupApi) { // 清除该筛选弹窗的选中行 column.filters[0].gridPopupApi.selection.clearSelectedRows(); } }); - 将上述代码添加到「重置所有筛选」按钮的点击事件逻辑中,与筛选条件重置的代码同步执行。
注意事项
- 需确保每个自定义筛选弹窗的
gridPopupApi已正确绑定到对应列的filter对象上(遵循UI Grid自定义筛选的弹窗API绑定规范) - 若筛选选项为异步加载,需保证弹窗初始化完成后再调用清除方法
内容的提问来源于stack exchange,提问作者user1259318
相关产品推荐
相关产品推荐

