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