ag-grid
Version:
Advanced Javascript Datagrid. Supports raw Javascript, AngularJS 1.x, AngularJS 2.0 and Web Components
61 lines (54 loc) • 2.66 kB
JavaScript
var module = angular.module("example", ["agGrid"]);
module.controller("exampleCtrl", function($scope, $http) {
var columnDefs = [
// this row shows the row index, doesn't use any data from the row
{headerName: "#", width: 50, cellRenderer: function(params) {
return params.node.id + 1;
} },
{headerName: "Athlete", field: "athlete", width: 150},
{headerName: "Age", field: "age", width: 90},
{headerName: "Country", field: "country", width: 120},
{headerName: "Year", field: "year", width: 90},
{headerName: "Date", field: "date", width: 110},
{headerName: "Sport", field: "sport", width: 110},
{headerName: "Gold", field: "gold", width: 100},
{headerName: "Silver", field: "silver", width: 100},
{headerName: "Bronze", field: "bronze", width: 100},
{headerName: "Total", field: "total", width: 100}
];
$scope.gridOptions = {
enableColResize: true,
virtualPaging: true, // this is important, if not set, normal paging will be done
rowSelection: 'single',
rowDeselection: true,
columnDefs: columnDefs
};
$http.get("../olympicWinners.json")
.then(function(result){
var allOfTheData = result.data;
var dataSource = {
rowCount: null, // behave as infinite scroll
pageSize: 100,
overflowSize: 100,
maxConcurrentRequests: 2,
maxPagesInCache: 2,
getRows: function (params) {
console.log('asking for ' + params.startRow + ' to ' + params.endRow);
// At this point in your code, you would call the server, using $http if in AngularJS.
// To make the demo look real, wait for 500ms before returning
setTimeout( function() {
// take a slice of the total rows
var rowsThisPage = allOfTheData.slice(params.startRow, params.endRow);
// if on or after the last page, work out the last row.
var lastRow = -1;
if (allOfTheData.length <= params.endRow) {
lastRow = allOfTheData.length;
}
// call the success callback
params.successCallback(rowsThisPage, lastRow);
}, 500);
}
};
$scope.gridOptions.api.setDatasource(dataSource);
});
});