This example demonstrates how to use a CriteriaPatchBase class descendant to apply a custom function criteria operator.
Assign a custom function operator to the grid's FilterExpression property. For the auto filter row, handle the grid's server-side ProcessColumnAutoFilter event as follows:
protected void Grid_ProcessColumnAutoFilter(object sender, DevExpress.Web.ASPxGridViewAutoFilterEventArgs e) {
var grid = (ASPxGridView)sender;
if(e.Column.FieldName == SpecialFilterColumnFieldName && e.Kind == GridViewAutoFilterEventKind.CreateCriteria) {
grid.FilterExpression = UpdateGridFilterExpression(grid, e);
e.Criteria = null;
}
}
Handle the grid's server-side AutoFilterCellEditorInitialize event to assign the custom criteria operator value to the filter editor.
protected void Grid_AutoFilterCellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e) {
var grid = (ASPxGridView)sender;
if(e.Column.FieldName == SpecialFilterColumnFieldName) {
var gridCriteria = CriteriaOperator.Parse(grid.FilterExpression);
e.Editor.Value = CriteriaVisitor.GetCustomFunctionOperatorValue(gridCriteria, e.Column.FieldName);
}
}