如何从分页的网格

时间:2015-11-17 19:00:35

标签: javascript angularjs angular-ui-grid

我希望在启用分页功能时从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);
            });

但是启用分页时代码不能很好地工作,它只返回第一页的行。但我需要所有过滤后的数据。

最简单的解决方案是根据过滤器术语过滤数据源,但它会显着降低性能。

任何建议?

3 个答案:

答案 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