Edit this page

Close Filtering Popup on Pressing Filter Button

In order to close filtering Popup on pressing the fitler button, you need to override the OnApplyFilter method of FilteringControl.

A demo on how to achieve the desired behavior is available in our SDK Samples Browser. The demo is labeled "Close Filtering Popup" and can also be found on GitHub - CloseFilteringPopupFilterButton.

Example 1: Overriding OnApplyFilter method

public class MyFilteringControl : FilteringControl
{
    public MyFilteringControl(Telerik.Windows.Controls.GridViewColumn column) : base(column)
    {         

    }        

    protected override void OnApplyFilter()
    {
        base.OnApplyFilter();

        var popup = this.ParentOfType<Popup>();
        if (popup != null)
        {
            popup.IsOpen = false;
        }           
    }
}
Public Class MyFilteringControl
    Inherits FilteringControl
    Public Sub New(column As Telerik.Windows.Controls.GridViewColumn)

        MyBase.New(column)
    End Sub

    Protected Overrides Sub OnApplyFilter()
        MyBase.OnApplyFilter()

        Dim popup = Me.ParentOfType(Of Popup)()
        If popup IsNot Nothing Then
            popup.IsOpen = False
        End If
    End Sub
End Class

Then you can apply it to a desired column like so:

Example 2: Apply the Custom Filter to the column

this.radGridView.Columns["Name"].FilteringControl = new MyFilteringControl(this.radGridView.Columns["Name"]);
Me.radGridView.Columns("Name").FilteringControl = New MyFilteringControl(Me.radGridView.Columns("Name"))

In case you are using NoXaml Binaries and Implicit Styles, you should additionally apply a template. Please refer to the Styling custom controls section.

The Style you should apply in XAML then is:

Example 3: Style targetting the custom control

<Style TargetType="my:MyFilteringControl" BasedOn="{StaticResource FilteringControlStyle}"/>