Back to Devexpress

Conditional Formatting Filters

windowsforms-405446-common-features-filtering-and-search-in-data-controls-conditional-formatting-filters.md

latest9.4 KB
Original Source

Conditional Formatting Filters

  • Jun 16, 2025
  • 4 minutes to read

You can specify a filter based on Conditional Formatting rules applied to the control.

Run Demo: Data Grid

Run Demo: TreeList

Run Demo: Vertical Grid

Tip

For more information on Conditional Formatting, refer to the following control-specific help topics:

End-User Capabilities

The following UI elements allow users to apply a Conditional Formatting filter:

  • Excel-style filter popup menu (if the control’s OptionsFilter.ShowConditionalFilters option is active)

  • Column header menu (if the control’s OptionsMenu.ShowConditionalFormatFiltersItem option is active)

  • Filter Editor

Important

Available filters depend on applied Conditional Formatting rules.

The current filter is displayed in the Filter Panel. Users can remove the entire filter or an individual condition by clicking .

Filter Types & Examples

This section lists Conditional Formatting rules that support filters and gives examples of filter strings based on these rules.

Conditional Formatting filters are custom functions. For example, the following filter string and filter criteria are equivalent:

csharp
gridView1.ActiveFilterString = "[@Equal]([Experience], 15)";
gridView1.ActiveFilterCriteria = new FunctionOperator("@Equal", new OperandProperty("Experience"), new OperandValue(15));
vb
gridView1.ActiveFilterString = "[@Equal]([Experience], 15)"
gridView1.ActiveFilterCriteria = New FunctionOperator("@Equal", New OperandProperty("Experience"), New OperandValue(15))

Make sure you apply a Conditional Formatting rule that matches your Conditional Formatting filter. If no matching rule is found, the filter panel may display the applied criterion without proper formatting. The following code snippet specifies a FormatConditionRuleValue and applies a corresponding filter:

csharp
FormatConditionRuleValue ruleValue = new FormatConditionRuleValue() { 
    Condition = FormatCondition.Equal, 
    Value1 = 15, 
    PredefinedName = "Green Fill, Green Text" };
GridFormatRule rule1 = new GridFormatRule() { 
    Column = gridView1.Columns[2], 
    Rule = ruleValue };
gridView1.FormatRules.Add(rule1);
// FormatConditionRuleValue-based filter
gridView1.ActiveFilterString = "[@Equal]([Experience], 15)";
vb
Dim ruleValue As New FormatConditionRuleValue() With {
    .Condition = FormatCondition.Equal,
    .Value1 = 15,
    .PredefinedName = "Green Fill, Green Text"
}
Dim rule1 As New GridFormatRule() With {
    .Column = gridView1.Columns(2),
    .Rule = ruleValue
}
gridView1.FormatRules.Add(rule1)
' FormatConditionRuleValue-based filter
gridView1.ActiveFilterString = "[@Equal]([Experience], 15)"

Show filter examples for other rule types

csharp
// FormatConditionRuleIconSet-based filter
gridView1.ActiveFilterString = "[@HasIcon]([Experience], 'GreaterOrEqual', 10, 'Number', 'Stars3_1.png')";

// FormatConditionRule2ColorScale/FormatConditionRule3ColorScale-based filter
gridView1.ActiveFilterString = "[@Has2ColorScale]([Experience], 'Automatic', 'Automatic', 16, 0, 'FFEB4D4D')";

// FormatConditionRuleAboveBelowAverage-based filter
gridView1.ActiveFilterString = "[@AboveAverage]([Experience])";

// FormatConditionRuleContains-based filter
gridView1.ActiveFilterString = "[@Contains]([Experience], 2, 4, 15)";

// FormatConditionRuleDateOccuring-based filter
gridView1.ActiveFilterString = "[@Today]([Date])";

// FormatConditionRuleExpression-based filter
gridView1.ActiveFilterString = "[@Expression]([Experience], '[Experience] >= 10')";

// FormatConditionRuleTopBottom-based filter
gridView1.ActiveFilterString = "[@TopPercent]([Experience], 20.0m)";

// FormatConditionRuleUniqueDuplicate-based filter
gridView1.ActiveFilterString = "[@Duplicate]([Experience])";
vb
' FormatConditionRuleIconSet-based filter
gridView1.ActiveFilterString = "[@HasIcon]([Experience], 'GreaterOrEqual', 10, 'Number', 'Stars3_1.png')"

' FormatConditionRule2ColorScale/FormatConditionRule3ColorScale-based filter
gridView1.ActiveFilterString = "[@Has2ColorScale]([Experience], 'Automatic', 'Automatic', 16, 0, 'FFEB4D4D')"

' FormatConditionRuleAboveBelowAverage-based filter
gridView1.ActiveFilterString = "[@AboveAverage]([Experience])"

' FormatConditionRuleContains-based filter
gridView1.ActiveFilterString = "[@Contains]([Experience], 2, 4, 15)"

' FormatConditionRuleDateOccuring-based filter
gridView1.ActiveFilterString = "[@Today]([Date])"

' FormatConditionRuleExpression-based filter
gridView1.ActiveFilterString = "[@Expression]([Experience], '[Experience] >= 10')"

' FormatConditionRuleTopBottom-based filter
gridView1.ActiveFilterString = "[@TopPercent]([Experience], 20.0m)"

' FormatConditionRuleUniqueDuplicate-based filter
gridView1.ActiveFilterString = "[@Duplicate]([Experience])"

You can also use the rule’s GetFilterCriteria(Int32) method to obtain a Conditional Formatting filter. Refer to the method description for more information.

csharp
// Conditional Formatting rule
FormatConditionRuleValue ruleValue = new FormatConditionRuleValue() { 
  Condition = FormatCondition.Equal, 
  Value1 = 15, 
  PredefinedName = "Green Fill, Green Text" };
GridFormatRule rule1 = new GridFormatRule() { Column = gridView1.Columns[0], Rule = ruleValue };
gridView1.FormatRules.Add(rule1);
// Filter by highlighted items
gridView1.ActiveFilterCriteria = rule1.GetFilterCriteria();
vb
' Conditional Formatting rule
Dim ruleValue As New FormatConditionRuleValue() With {
    .Condition = FormatCondition.Equal,
    .Value1 = 15,
    .PredefinedName = "Green Fill, Green Text"
}
Dim rule1 As New GridFormatRule() With {
    .Column = gridView1.Columns(0),
    .Rule = ruleValue
}
gridView1.FormatRules.Add(rule1)
' Filter by highlighted items
gridView1.ActiveFilterCriteria = rule1.GetFilterCriteria()

Limitations

The following Conditional Formatting rules do not support filters:

Filters based on the following Conditional Formatting rules do not work in Server Mode:

See Also

Criteria Language Syntax