【问题标题】:How to do client-side pagination with ngGrid?如何使用 ngGrid 进行客户端分页?
【发布时间】:2013-12-14 05:02:49
【问题描述】:

如果将ng-gridenablePaging 选项设置为true,则启用服务器端分页。

那客户端呢?我在文档中找不到任何提示,但我无法想象ng-grid 也不支持客户端分页。

有什么提示吗?

【问题讨论】:

    标签: angularjs pagination ng-grid


    【解决方案1】:

    我认为角度页面 (http://angular-ui.github.io/ng-grid/) 上给出的示例实际上显示了客户端分页的示例。如果您查看示例脚本 (http://angular-ui.github.io/ng-grid/jsonFiles/largeLoad.json) 正在调用的数据加载,您会发现它实际上并没有执行任何服务器端分页...它作为一个大文件下降。

    【讨论】:

    • 如果您仔细观察,当您单击下一页时会发生什么,它肯定会进行 ajax 调用,显然它会一遍又一遍地带来相同的文件。
    • 404。答案需要更新。
    【解决方案2】:

    它可能对你有帮助!

    AngularJs 代码示例

    var app = angular.module('myApp', ['ngGrid']);
    app.controller('MyCtrl', function($scope, $http) {
      $scope.filterOptions = {
        filterText: ""
      };
    
      $scope.pagingOptions = {
        pageSizes: [25, 50, 100],
        pageSize: 25,
        totalServerItems: 0,
        currentPage: 1
      };
    
      $scope.setPagingData = function(data, page, pageSize) {
        var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
        $scope.myData = pagedData;
        $scope.pagingOptions.totalServerItems = data.length;
        if (!$scope.$$phase) {
          $scope.$apply();
        }
      };
    
      $scope.getPagedDataAsync = function(pageSize, page) {
        setTimeout(function() {      
            $http.get('json').success(function(largeLoad) {
              $scope.setPagingData(largeLoad, page, pageSize);
            });
        }, 100);
      };
    
      $scope.$watch('pagingOptions', function() {
        $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
      }, true);
    
      $scope.gridOptions = {
        data: 'myData',
        enablePaging: true,
        pagingOptions: $scope.pagingOptions,
        showFooter: true
      };
    
      $scope.gridOptions.columnDefs = 'gridColumnDefs';
    
      // city loc pop state
      $scope.gridColumnDefs = [{
          field: "city"
        },
        {
          field: "state"
        }, {
          field: "pop"
        }, {
          field: "loc"
        }
      ];
    
    });
    

    HTML 代码示例

       <div ng-app="myApp" ng-controller="MyCtrl">
            <div class="gridStyle" ng-grid="gridOptions"></div>
        </div> 
    

    【讨论】:

    • 请给客户端分页示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多