Skip to main content
All docs
V25.1
  • Conditional Formatting Filters

    • 4 minutes to read

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

    WinForms - Conditional Formatting Filters, DevExpress

    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)

      WinForms Data Grid - Conditional Format Filters Item in Filter Popup, DevExpress

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

      WinForms Data Grid - Conditional Format Filters Item in Column Header Menu, DevExpress

      A column header menu shows all rules applied to the column (GridFormatRule.ColumnApplyTo), even if those rules use values from other columns (GridFormatRule.Column). Rules that apply to the entire row (GridFormatRule.ApplyToRow) also appear in the menu.

    • Filter Editor

      WinForms Data Grid - Conditional Format Filters in Filter Editor, DevExpress

    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 x.

    WinForms Data Grid - Conditional Format Filters in Filter Panel, DevExpress

    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:

    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:

    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)";
    
    Show filter examples for other rule types
    // 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.

    // 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();
    

    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