<!DOCTYPE html>
<html>
<head>
<style> html, body { margin: 0; padding: 0; height: 100%; } </style>
<script src="https://unpkg.com/ag-grid-enterprise@14.2.0/dist/ag-grid-enterprise.js"></script>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div>
<span class="button-group">
<button onclick="clearFilters()">Clear Filters</button>
</span>
</div>
<div id="myGrid" class="ag-theme-fresh" style="height: 400px;"></div>
<script src="main.js"></script>
</body>
</html>
var columnDefs = [{
headerName: 'Athlete',
field: 'athlete',
width: 150,
filter: 'text'
}, {
headerName: 'Age',
field: 'age',
width: 90,
filter: 'number'
}, {
headerName: 'Country',
field: 'country',
width: 50
}, {
headerName: 'Year',
field: 'year',
width: 90
}, {
headerName: 'Date',
field: 'date',
width: 145,
filter: 'date',
filterParams: {
comparator: function(filterLocalDateAtMidnight, cellValue) {
var dateAsString = cellValue;
var dateParts = dateAsString.split('/');
var cellDate = new Date(Number(dateParts[2]), Number(dateParts[1]) - 1, Number(dateParts[0]));
if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {
return 0;
}
if (cellDate < filterLocalDateAtMidnight) {
return -1;
}
if (cellDate > filterLocalDateAtMidnight) {
return 1;
}
}
}
}, {
headerName: 'Sport',
field: 'sport',
width: 110
}, {
headerName: 'Gold',
field: 'gold',
width: 100,
filter: 'number'
}, {
headerName: 'Silver',
field: 'silver',
width: 100,
filter: 'number'
}, {
headerName: 'Bronze',
field: 'bronze',
width: 100,
filter: 'number'
}, {
headerName: 'Total',
field: 'total',
width: 100,
filter: 'number'
}];
var gridOptions = {
columnDefs: columnDefs,
rowData: null,
enableFilter: true,
enableSorting: true,
throttleScroll: true,
// these hide enterprise features, so they are not confusing
// you if using ag-Grid standard
suppressMenu: true,
floatingFilter: true
};
/**
* ISSUE RESOLUTION
*/
function clearFilters() {
gridOptions.api.setFilterModel(null);
gridOptions.api.onFilterChanged();
}
// setup the grid after the page has finished loading
document.addEventListener('DOMContentLoaded', function() {
var gridDiv = document.querySelector('#myGrid');
new agGrid.Grid(gridDiv, gridOptions);
// do http request to get our sample data - not using any framework to keep the example self contained.
// you will probably use a framework like JQuery, Angular or something else to do your HTTP calls.
var httpRequest = new XMLHttpRequest();
httpRequest.open('GET', 'https://raw.githubusercontent.com/ag-grid/ag-grid-docs/master/src/olympicWinners.json');
httpRequest.send();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4 && httpRequest.status === 200) {
var httpResult = JSON.parse(httpRequest.responseText);
gridOptions.api.setRowData(httpResult);
var allColumnIds = [];
gridOptions.columnApi.getAllColumns().forEach(function(column) {
allColumnIds.push(column.colId);
});
gridOptions.columnApi.autoSizeColumns(allColumnIds);
}
};
});
.button-group {
padding-bottom: 4px;
display: inline-block;
}