ag-grid
Version:
Advanced Javascript Datagrid. Supports raw Javascript, AngularJS 1.x, AngularJS 2.0 and Web Components
73 lines (62 loc) • 2.86 kB
JavaScript
var fileBrowserModule = angular.module('account', ['agGrid']);
fileBrowserModule.controller('accountController', function($scope) {
var columnDefs = [
{headerName: '', field: 'item', width: 200, cellRenderer: {
renderer: 'group'
}},
{headerName: "Units", field: "amount1", headerGroup: 'Week 1', width: 70},
{headerName: "GBP", field: "gbp1", headerGroup: 'Week 1', width: 70, cellRenderer: currencyRenderer},
{headerName: "Units", field: "amount2", headerGroup: 'Week 2', width: 70},
{headerName: "GBP", field: "gbp2", headerGroup: 'Week 2', width: 70, cellRenderer: currencyRenderer},
{headerName: "Units", field: "amount3", headerGroup: 'Week 3', width: 70},
{headerName: "GBP", field: "gbp3", headerGroup: 'Week 3', width: 70, cellRenderer: currencyRenderer},
{headerName: "Units", field: "amountTotal", headerGroup: 'Period Total', width: 70},
{headerName: "GBP", field: "gbpTotal", headerGroup: 'Period Total', width: 70, cellRenderer: currencyRenderer}
];
function currencyRenderer(params) {
if (params.value) {
return '£ ' + params.value.toLocaleString();
} else {
return null;
}
}
$scope.gridOptions = {
columnDefs: columnDefs,
rowData: createRowData(),
rowSelection: 'single',
groupKeys: ['category'],
groupHeaders: true,
groupDefaultExpanded: true,
groupIncludeFooter: true,
groupAggFields: ['amount1','gbp1','amount2','gbp2','amount3','gbp3','amount4','gbp4'],
enableColResize: true,
enableSorting: false,
forPrint: true,
groupSuppressAutoColumn: true,
icons: {
groupExpanded: '<i class="fa fa-minus-square-o"/>',
groupContracted: '<i class="fa fa-plus-square-o"/>'
},
enableFilter: false
};
function createRowData() {
var rows = [];
['Ales','Larger','Cider','Wine','Spirits'].forEach( function (item) {
rows.push({category: 'Alcoholic Drinks', item: item});
});
['Water','Juice','Soda','Milk'].forEach( function (item) {
rows.push({category: 'Non-Alcoholic Drinks', item: item});
});
rows.forEach( function(row) {
row.amount1 = Math.round(Math.random() * 100);
row.amount2 = Math.round(Math.random() * 100);
row.amount3 = Math.round(Math.random() * 100);
row.amountTotal = row.amount1 + row.amount2 + row.amount3;
row.gbp1 = row.amount1 * 22;
row.gbp2 = row.amount2 * 22;
row.gbp3 = row.amount3 * 22;
row.gbpTotal = row.amountTotal * 22;
});
return rows;
}
});