Я следил за несколькими темами здесь, связанными с проблемой, но не смог найти проблему с моим кодом. У меня есть 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);
Этот метод не обновляет количество записей в первый раз до того, как будет запущено разбиение на страницы. Когда разбиение на страницы запускается, значение становится правильным. – Varshaan