HOME PAGE | DOWNLOAD | TUTORIALS | XtraReports
Devexpress

Sunday, July 22, 2012

How to: Customize the Checked Filter Dropdown List

The following example shows how to customize the checked filter dropdown list via the ColumnView.ShowFilterPopupCheckedListBox event. In the example, the filter dropdown is represented as a checked list for a Category Name column. In the ShowFilterPopupCheckedListBox event, the list's "Show All" item is hidden, and two check items ("Seafood" and "Condiments") are disabled. The result is shown in the image below:

C#

using DevExpress.XtraGrid.Views.Grid;

using DevExpress.XtraEditors.Controls;

 

// Enable the checked filter dropdown list for the Category Name column.

colCategoryName.OptionsFilter.FilterPopupMode =

    DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList;

// Subscribe to the ShowFilterPopupCheckedListBox event.

gridView1.ShowFilterPopupCheckedListBox +=

    new FilterPopupCheckedListBoxEventHandler(gridView1_ShowFilterPopupCheckedListBox);

 

void gridView1_ShowFilterPopupCheckedListBox(object sender,

    DevExpress.XtraGrid.Views.Grid.FilterPopupCheckedListBoxEventArgs e) {

    if(e.Column.FieldName != "CategoryName") return;

    // Hide the "Show All" item.

    e.CheckedComboBox.ShowAllItemVisible = false;           

    // Locate and disable checked items that contain specific values.

    for(int i =0; i< e.CheckedComboBox.Items.Count; i++) {

        CheckedListBoxItem item = e.CheckedComboBox.Items[i];

        string itemValue = (string)(item.Value as FilterItem).Value;

        if (itemValue == "Seafood" || itemValue == "Condiments") {

            e.CheckedComboBox.Items[i].Enabled = false;

        }

    }

}

 

VB

Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraEditors.Controls
 
' Enable the checked filter dropdown list for the Category Name column.
colCategoryName.OptionsFilter.FilterPopupMode = _ 
    DevExpress.XtraGrid.Columns.FilterPopupMode.CheckedList
' Subscribe to the ShowFilterPopupCheckedListBox event.
AddHandler GridView1.ShowFilterPopupCheckedListBox, _ 
    AddressOf gridView1_ShowFilterPopupCheckedListBox
 
Private Sub gridView1_ShowFilterPopupCheckedListBox(ByVal sender As Object, _ 
ByVal e As FilterPopupCheckedListBoxEventArgs)
    If e.Column.FieldName <> "CategoryName" Then
        Return
    End If
    ' Hide the "Show All" item.
    e.CheckedComboBox.ShowAllItemVisible = False
    ' Locate and disable checked items that contain specific values.
    Dim i As Integer = 0
    Do While i < e.CheckedComboBox.Items.Count
        Dim item As CheckedListBoxItem = e.CheckedComboBox.Items(i)
        Dim itemValue As String = CStr((TryCast(item.Value, FilterItem)).Value)
        If itemValue = "Seafood" OrElse itemValue = "Condiments" Then
            e.CheckedComboBox.Items(i).Enabled = False
        End If
        i += 1
    Loop
End Sub



No comments:

Post a Comment