2015-06-18 4 views
2

Я следил за несколькими темами здесь, связанными с проблемой, но не смог найти проблему с моим кодом. У меня есть peg ng-grid, но общее количество элементов (нижний левый угол) и общее количество страниц x/n неверно. Когда у меня должно быть 14 в качестве общих элементов и 3 в качестве общих страниц для размера страницы 5, я вижу, что общий счет равен 5, а всего страниц - 1. Однако я могу перейти на другие страницы со значком стрелки.ng-grid paging: общее количество элементов и количество страниц неверно

Вот мой код:

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

Смежные вопросы