UNPKG

ag-grid

Version:

Advanced Javascript Datagrid. Supports raw Javascript, AngularJS 1.x, AngularJS 2.0 and Web Components

93 lines (86 loc) 3.95 kB
var module = angular.module("example", ["agGrid"]); module.controller("exampleCtrl", function($scope, $http) { var columnDefs = [ // this row just 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, filter: 'number'}, {headerName: "Date", field: "date", width: 110}, {headerName: "Sport", field: "sport", width: 110, filter: 'text'}, {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 = { // note - we do not set 'virtualPaging' here, so the grid knows we are doing standard paging enableSorting: true, enableFilter: true, enableColResize: true, columnDefs: columnDefs, showToolPanel: true, localeText: { // for filter panel page: 'daPage', more: 'daMore', to: 'daTo', of: 'daOf', next: 'daNexten', last: 'daLasten', first: 'daFirsten', previous: 'daPreviousen', loadingOoo: 'daLoading...', // for set filter selectAll: 'daSelect Allen', searchOoo: 'daSearch...', blanks: 'daBlanc', // for number filter and string filter filterOoo: 'daFilter...', applyFilter: 'daApplyFilter...', // for number filter equals: 'daEquals', lessThan: 'daLessThan', greaterThan: 'daGreaterThan', // for text filter contains: 'daContains', startsWith: 'daStarts dawith', endsWith: 'daEnds dawith', // tool panel columns: 'laColumns', pivotedColumns: 'laPivot Cols', pivotedColumnsEmptyMessage: 'la please drag cols to here', valueColumns: 'laValue Cols', valueColumnsEmptyMessage: 'la please drag cols to here' } }; $http.get("../olympicWinners.json") .then(function(result){ var allOfTheData = result.data; var dataSource = { //rowCount: ???, - not setting the row count, infinite paging will be used pageSize: 500, overflowSize: 500, getRows: function (params) { // this code should contact the server for rows. however for the purposes of the demo, // the data is generated locally, and a timer is used to give the expereince of // an asynchronous call console.log('asking for ' + params.startRow + ' to ' + params.endRow); setTimeout( function() { // take a chunk of the array, matching the start and finish times var rowsThisPage = allOfTheData.slice(params.startRow, params.endRow); var lastRow = -1; // see if we have come to the last page, and if so, return it if (allOfTheData.length <= params.endRow) { lastRow = allOfTheData.length; } params.successCallback(rowsThisPage, lastRow); }, 500); } }; $scope.gridOptions.api.setDatasource(dataSource); }); });