【发布时间】:2013-12-14 05:02:49
【问题描述】:
如果将ng-grid 的enablePaging 选项设置为true,则启用服务器端分页。
那客户端呢?我在文档中找不到任何提示,但我无法想象ng-grid 也不支持客户端分页。
有什么提示吗?
【问题讨论】:
标签: angularjs pagination ng-grid
如果将ng-grid 的enablePaging 选项设置为true,则启用服务器端分页。
那客户端呢?我在文档中找不到任何提示,但我无法想象ng-grid 也不支持客户端分页。
有什么提示吗?
【问题讨论】:
标签: angularjs pagination ng-grid
我认为角度页面 (http://angular-ui.github.io/ng-grid/) 上给出的示例实际上显示了客户端分页的示例。如果您查看示例脚本 (http://angular-ui.github.io/ng-grid/jsonFiles/largeLoad.json) 正在调用的数据加载,您会发现它实际上并没有执行任何服务器端分页...它作为一个大文件下降。
【讨论】:
它可能对你有帮助!
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>
【讨论】: