I have a custom column filter for a grid, and when selecting a value, the followingmethod is called
public onChange(value: any): void { const filtersMap: FilterDescriptor[] = value.map(val => ({ field: this.filterField, operator: 'eq', val })); console.log('ColumnFilterMultiComponent -> filtersMap', JSON.stringify(filtersMap)); const compositeFilter: CompositeFilterDescriptor = { logic: 'or', filters: filtersMap }; this.applyFilter( value === '' ? this.removeFilter(this.filterField) : compositeFilter ); }
and the resulting DataSourceRequestState object is created:
{ "filter": { "logic": "or", "filters": [ { "field": "projectStatus", "operator": "eq", "val": "Active" }, { "field": "projectStatus", "operator": "eq", "val": "Closed" } ] }, "group": [], "skip": 0, "sort": [ { "field": "modifiedDate", "dir": "desc" } ], "take": 20}
but then calling ${toDataSourceRequestString(state)} results in this querystring:
filter=(projectStatus~eq~undefined~or~projectStatus~eq~undefined)&page=1&sort=modifiedDate-desc&pageSize=20
Why did the values from the filter get changed to undefined?