-----------------
If you are new to AngularJS, then I recommend you to read my first article that I have written for beginners.
AngularJS Tutorial for Beginners – My First AngularJS App “Hello World”
-----------------
In this example here, I am using JSON data, extracted from an External .json file. Here’s the sample JSON data.
[
{
"ID": "001",
"Name": "Eurasian Collared-Dove",
"Type": "Dove",
"Scientific Name": "Streptopelia"
},
{
"ID": "002",
"Name": "Bald Eagle",
"Type": "Hawk",
"Scientific Name": "Haliaeetus leucocephalus"
},
{
"ID": "003",
"Name": "Cooper's Hawk",
"Type": "Hawk",
"Scientific Name": "Accipiter cooperii"
},
{
"ID": "004",
"Name": "Bell's Sparrow",
"Type": "Sparrow",
"Scientific Name": "Artemisiospiza belli"
},
{
"ID": "005",
"Name": "Mourning Dove",
"Type": "Dove",
"Scientific Name": "Zenaida macroura"
},
{
"ID": "006",
"Name": "Rock Pigeon",
"Type": "Dove",
"Scientific Name": "Columba livia"
},
{
"ID": "007",
"Name": "Abert's Towhee",
"Type": "Sparrow",
"Scientific Name": "Melozone aberti"
},
{
"ID": "008",
"Name": "Brewer's Sparrow",
"Type": "Sparrow",
"Scientific Name": "Spizella breweri"
},
{
"ID": "009",
"Name": "Canyon Towhee",
"Type": "Sparrow",
"Scientific Name": "Melozone fusca"
},
{
"ID": "010",
"Name": "Black Vulture",
"Type": "Hawk",
"Scientific Name": "Coragyps atratus"
},
{
"ID": "011",
"Name": "Gila Woodpecker",
"Type": "Woodpecker",
"Scientific Name": "Melanerpes uropygialis"
},
{
"ID": "012",
"Name": "Gilded Flicker",
"Type": "Woodpecker",
"Scientific Name": "Colaptes chrysoides"
},
{
"ID": "013",
"Name": "Cassin's Sparrow",
"Type": "Sparrow",
"Scientific Name": "Peucaea cassinii"
},
{
"ID": "014",
"Name": "American Kestrel",
"Type": "Hawk",
"Scientific Name": "Falco sparverius"
},
{
"ID": "015",
"Name": "Hairy Woodpecker",
"Type": "Woodpecker",
"Scientific Name": "Picoides villosus"
},
{
"ID": "016",
"Name": "Lewis's Woodpecker",
"Type": "Woodpecker",
"Scientific Name": "Melanerpes lewis"
},
{
"ID": "017",
"Name": "Snail Kite",
"Type": "Hawk",
"Scientific Name": "Rostrhamus sociabilis"
},
{
"ID": "018",
"Name": "White-tailed Hawk",
"Type": "Hawk",
"Scientific Name": "Geranoaetus albicaudatus"
}
]Make sure you have lots of data in your JSON file, so you work with the pagination feature on your Grid. Copy the above data in a Notepad and save the file as sample.json.
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/4.6.3/ui-grid.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/4.6.3/ui-grid.min.css" type="text/css">
<style>
.uiGrd {
width: 550px;
height: 300px;
}
</style>
</head>
<body>
<div ng-app="myApp"
ng-controller="myController">
<p>{{title}}</p>
<div class="uiGrd" id="grd" ui-grid="gridOptions" ui-grid-pagination</div>
</div>
</body>Inside the view, I have a <div> element with two directives.
• ui-grid: This directive is used to specify the data, along with some options provided to the grid. (See the script below).
• ui-grid-pagination: Adding this directive ensures paging or pagination is implemented.
👉 How to create a Data Grid in AngularJS using UI-Grid and Asp.Net Web API in MVC 4 
<script>
var app = angular.module('myApp', ['ui.grid', 'ui.grid.pagination']);
app.controller('myController', function ($scope, $http) {
$scope.title = "AngularJS UI-Grid with Pagination";
// SPECIFY PAGINATION OPTIONS, ROWS PER PAGE.
$scope.gridOptions = {
paginationPageSizes: [5, 10, 20],
paginationPageSize: 5
};
// REQUEST JSON DATA FROM FILE.
var request = {
method: 'get',
url: 'sample.json',
dataType: 'json',
contentType: "application/json"
};
$http(request)
.success(function (jsonData) {
$scope.gridOptions.data = jsonData; // BIND JSON TO GRID.
})
.error(function () { });
});
</script>
</html>I have first added couple modules as dependency to my controller. These are ui-grid and ui-grid-pagination.
var app = angular.module('myApp', ['ui.grid', 'ui.grid.pagination']);
Next, I have set the options to the grid’s pagination feature.
• paginationPageSizes: Its an array of page sizes.

• paginationPageSize: I have set it as 5, which means, show 5 rows per page.
Finally, I am binding the JSON data (extracted from a file) to the grid.
$scope.gridOptions.data = jsonData;
More UI-Grid Pagination Properties
AngularJS UI-Grid provides more pagination features.
1) enablePagination: You can explicitly enable or disable pagination your UI-Grid. This Boolean property takes values as true or false. The default is true. For example,
$scope.gridOptions = {
paginationPageSizes: [5, 10, 20],
paginationPageSize: 5,
enablePagination: false // DISABLE PAGINATION.
};Note: Setting enablePagination to false will disable pagination on the grid. However, the pagination controls will remain visible.
2) enablePaginationControls: Now, using this property you can hide or show pagination controls. This is another Boolean property. The default is true.
enablePaginationControls: false
You can experiment with the 1st and 2nd properties or simply remove the first and add only the second property. See what happens.
3) paginationCurrentPage: Use this property if you do not want to show the first page (which is default) and instead show the 2nd or the 4th page, etc. For example, I want to show the 2nd page of the grid when my web page loads.
paginationPageSizes: [5, 10, 20],
paginationPageSize: 5,
paginationCurrentPage: 2