Conditional Formatting Filters
- 4 minutes to read
You can specify a filter based on Conditional Formatting rules applied to the control.
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)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
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.
FormatConditionRuleIconSet – Filters data by icon.
FormatConditionRule2ColorScale / FormatConditionRule3ColorScale – Filters data by color.
FormatConditionRuleAboveBelowAverage – Keeps items highlighted as above or below average.
FormatConditionRuleContains – Keeps items that match a value from the predefined list.
FormatConditionRuleDateOccuring – Filters data by the specified date condition.
FormatConditionRuleExpression – Keeps items that match the specified expression.
FormatConditionRuleTopBottom – Filters data by highlighted top/bottom N values.
FormatConditionRuleUniqueDuplicate – Keeps unique or duplicate values.
FormatConditionRuleValue – Keeps items that match the specified condition.
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)";
// 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:
- FormatConditionRuleIconSet
- FormatConditionRule2ColorScale
- FormatConditionRule3ColorScale
- FormatConditionRuleAboveBelowAverage
- FormatConditionRuleTopBottom
- FormatConditionRuleUniqueDuplicate