2015-06-18 40 views
2

我在這裏跟隨了幾個涉及這個問題的線程,但是找不到我的代碼的問題。我有一個分頁的網格,但總計數(左下角)和總頁數爲x/n是錯誤的。當我的頁面大小爲5時,應該有14個作爲總項目和3個總頁面,我將總數看作5,將總頁數看作1.但是,我可以使用箭頭圖標導航到其他頁面。ng-grid分頁:總項目和頁面計數是錯誤的

這是我的代碼:

vm.gridOptions = { 
 
      data: "vm.pagedDataList", 
 
      rowHeight: 35, 
 
      enableCellSelection: false, 
 
      enableRowSelection: true, 
 
      multiSelect: false, 
 
      columnDefs: [ 
 
       { field: 'locationId', displayName: localize.getLocalizedString('_LocationCode_'), visible: false}, 
 
       { field: 'locationCode', displayName: localize.getLocalizedString('_LocationCode_'), width: '10%', cellTemplate: tooltipTemplateUrl }, 
 
       { field: 'locationTypeName', displayName: localize.getLocalizedString('_Locationtype_'), width: '15%', cellTemplate: tooltipTemplateUrl }, 
 
       { field: 'locationName', displayName: localize.getLocalizedString('_LocationName_'), width: '15%', cellTemplate: tooltipTemplateUrl }, 
 
       { field: 'locationDisplayName', displayName: localize.getLocalizedString('_LocationDisplayName_'), width: '15%', cellTemplate: tooltipTemplateUrl } 
 
      ], 
 
      enablePaging: true, 
 
      showFooter: true, 
 
      pagingOptions: { pageSizes: [5,10], pageSize: 5, currentPage: 1 }, 
 
      totalServerItems: 'vm.locationList.length' 
 
     }; 
 

 
     $scope.$watch('vm.gridOptions.pagingOptions', function (newVal, oldVal) { 
 
      //if (newVal !== oldVal && newVal.currentPage !== oldVal.currentPage) { 
 
       vm.getPagedDataAsync(vm.gridOptions.pagingOptions.pageSize, vm.gridOptions.pagingOptions.currentPage, null); 
 
      //} 
 
     }, true); 
 

 
     vm.setPagingData = function (data, page, pageSize) { 
 
      var pagedData = data.slice((page - 1) * pageSize, page * pageSize); 
 
      vm.pagedDataList = pagedData; 
 
      vm.gridOptions.totalServerItems = data.length; 
 
      if (!$scope.$$phase) { 
 
       $scope.$apply(); 
 
      } 
 
     }; 
 

 
     vm.getPagedDataAsync = function (pageSize, page) { 
 
      vm.setPagingData(vm.locationList, page, pageSize); 
 
     };

然後我把這種在init()的方法,該數據被裝載之後;

vm.getPagedDataAsync(vm.gridOptions.pagingOptions.pageSize, vm.gridOptions.pagingOptions.currentPage); 

回答

1

變更線

totalServerItems: 'vm.locationList.length' 

totalServerItems: 'totalServerItems', 

vm.gridOptions.totalServerItems = data.length; 

$scope.totalServerItems = data.length; 
+0

此方法不會在觸發分頁之前首次更新記錄數。當分頁被觸發時,該值變得正確。 – Varshaan