我有一个应用程序,它坚持ag-grid控件的排序和过滤标准。我们正在使用服务器端排序和过滤,因此一旦加载了排序/过滤条件,就会使用这些标准加载网格数据。
当网格首次加载时,显示的行数据是基于保留的排序和过滤数据是正确的。但是,排序/过滤器就位的网格(排序或过滤器图标)中没有任何指示。如何在首次加载数据时确保显示这些内容?
我尝试过使用gridOptions.api.setFilterModel()方法,但是如果我在加载数据之前调用它,我会得到一个异常。如果我在加载数据后直接调用它,则该方法会导致数据重新加载,从而进入无限循环。
我已经能够设置"排序"初始化网格时columnDef上的属性,但无法使用过滤数据执行此操作。
请注意,我们还使用了Angular 2过滤器组件(实现AgFilterComponent),因此请使用" filterFramework" columnDef中设置的属性。
干杯, 斯图尔特。
答案 0 :(得分:0)
我们也这样做,在我这边,我在启动时调用方法setFilterActive
来正确初始化每个过滤器图标的状态。
以下是如何操作的示例
gridOptions.isExternalFilterPresent = () => {
let isFilterActive = myExternalFiler.ColumnFilters.length > 0
if (isFilterActive) {
//used at init time to show the filter icon correctly
for (let colFilter of myExternalFiler.ColumnFilters) {
if (!gridOptions.columnApi.getColumn(colFilter.ColumnId).isFilterActive()) {
gridOptions.columnApi.getColumn(colFilter.ColumnId).setFilterActive(true)
}
}
}
return isFilterActive;
}