我希望在启用分页功能时从ui网格获取过滤数据。一般情况下,我使用
$scope.gridApi.core.on.filterChanged($scope, function () {
if ($scope.gridApi.grid.columns[1].filter.term != "" && $scope.gridApi.grid.columns[1].filter.term != undefined) {
var dd =$scope.gridApi.core.getVisibleRows($scope.gridApi.grid);
console.log(dd);
});
但是启用分页时代码不能很好地工作,它只返回第一页的行。但我需要所有过滤后的数据。
最简单的解决方案是根据过滤器术语过滤数据源,但它会显着降低性能。
任何建议?
答案 0 :(得分:12)
注意:我没有尝试分页,只是分组,但希望它能给你一个提示。
尝试将rowsVisibleChanged
事件与filterChanged
事件一起使用。您必须同时使用这两个,因为如果您单独使用filterChanged
事件,它将无法工作,因为它是在实际过滤行之前启动的。我使用标志变量(filterChanged
)来了解过滤器是否被修改。
然后,使用类似lodash的内容来过滤$scope.gridApi.grid.rows
属性设置为visible
的{{1}}:
true
答案 1 :(得分:2)
我能够通过uiGridExporterService服务在所有分页中导出过滤后的数据。感谢@ Patricio上面提示的答案。
$scope.DeptData = dateParser(d.data);
答案 2 :(得分:0)
我尝试了自定义导出器并且有效!
先决条件:
mapStateToProps
您的控制器需要:
enableSelectAll:true,
multiSelect:true,
app模块需要:
uiGridExporterService,uiGridExporterConstants