<!DOCTYPE html>
<html>
<head>
<style> html, body { margin: 0; padding: 0; height: 100%; } </style>
<script src="https://unpkg.com/ag-grid-enterprise@15.0.0/dist/ag-grid-enterprise.js"></script>
</head>
<body>
<span>Filters are not applied if Set Filter values are not populated at time of .setFilterModel() call.
<br/>
<br/>
<button onclick="applyFilter()">Apply Filter using setFilterModel()</button></span>
<br/>
<br/>
<div id="myGrid" class="ag-theme-fresh" style="height: 100%;"></div>
<script src="main.js"></script>
</body>
</html>
var columnDefs = [
{
headerName: 'Set filter col', field: 'value', width: 150, filter: 'agSetColumnFilter', filterParams: {
values: (params)=>{
setTimeout(()=>{
params.success(['value 1', 'value 2'])
}, 5000)
}
}
}
];
var gridOptions = {
columnDefs: columnDefs,
rowData: [
{value:'value 1'},
{value:'value 1'},
{value:'value 1'},
{value:'value 1'},
{value:'value 2'},
{value:'value 2'},
{value:'value 2'},
{value:'value 2'},
{value:'value 2'}
],
enableFilter: true,
floatingFilter: true
};
function applyFilter(){
gridOptions.api.setFilterModel({value:['value 1']});
}
// setup the grid after the page has finished loading
document.addEventListener('DOMContentLoaded', function() {
var gridDiv = document.querySelector('#myGrid');
new agGrid.Grid(gridDiv, gridOptions);
});