We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

removing "Custom" and "Empty" filter options

Thread ID:

Created:

Updated:

Platform:

Replies:

140878 Nov 12,2018 07:40 PM UTC Nov 13,2018 05:38 AM UTC WinForms 1
loading
Tags: GridGroupingControl
Dado Ben-David
Asked On November 12, 2018 07:40 PM UTC

Hi Support
i am using GridGroupingControl version 11.3045.0.30
i'm trying to remove the empty and custom filter options, in your documentation i found that i need to use the FilterRowOptions.AllowEmptyFilter
and FilterRowOptions.AllowCustomFilter properties, however, these properties are not available

Error 19 'Syncfusion.Windows.Forms.Grid.Grouping.GridColumnDescriptor' does not contain a definition for 'FilterRowOptions' and no extension method 'FilterRowOptions' accepting a first argument of type 'Syncfusion.Windows.Forms.Grid.Grouping.GridColumnDescriptor' could be found (are you missing a using directive or an assembly reference?)

i'm assuming that this is because i'm using a very old version of the control
given that i cant upgrade, how can i remove these filter options ?

thanks
Dado







Arulraj A [Syncfusion]
Replied On November 13, 2018 05:38 AM UTC

Hi Dado, 

Thanks for contacting Syncfusion support. 

To remove the Custom and Empty options from filter drop down list in Syncfusion product version 11.3.0.30, you could implement a custom filter bar cell that derives the cell model/cell renderer from the GridTableFilterBarCellModel/GridTableFilterBarCellRenderer
The GridTableFilterBarCellModel.FillWithChoices method is overridden to remove the string Custom from the list. Please refer the follwoing code example and the KB link, 
C# 
this.gridGroupingControl1.TableModel.CellModels.Add("GridTableFilterBarCell", new GridTableFilterBarCellModel1(this.gridGroupingControl1.TableModel)); 
//Assigns the FilterBarCelltype as GridTableFilterBarCell 
this.gridGroupingControl1.TableDescriptor.Appearance.FilterBarCell.CellType = "GridTableFilterBarCell"; 
 
public class GridTableFilterBarCellModel1 : GridTableFilterBarCellModel 
{ 
    public GridTableFilterBarCellModel1(Syncfusion.Windows.Forms.Grid.GridModel gm) 
        : base(gm) 
    { 
    } 
 
    //Overrides FillWithChoices to remove 'Custom' option from the list. 
    public override void FillWithChoices(ListBox listBox, GridStyleInfo style, out bool exclusive) 
    { 
        exclusive = true; 
        GridTableCellStyleInfo tableStyleInfo = (GridTableCellStyleInfo)style; 
        object[] items = (object[])GetFilterBarChoices(tableStyleInfo.TableCellIdentity); 
        listBox.Items.Clear(); 
        if (items != null) 
        { 
            listBox.Items.Add(SelectAllText); 
            foreach (object item in items) 
            { 
                if (item != null && item != DBNull.Value) 
                    listBox.Items.Add(style.GetFormattedText(item)); 
            } 
        } 
    } 
 
    //Customizes the 'Select' method to hide the Custom option. 
    public void Select_WithoutCustom(GridTableCellStyleInfoIdentity tableCellIdentity, int index) 
    { 
        if (index >= 0) 
        { 
            if (index == 0) 
            { 
                ResetFilterBar(tableCellIdentity); 
            } 
            else 
            { 
                SelectItem(tableCellIdentity, index - 1); 
            } 
        } 
    } 
    public override GridCellRendererBase CreateRenderer(GridControlBase control) 
    { 
       return new Cellrenderer(control, this); 
    } 
 
} 
public class Cellrenderer : GridTableFilterBarCellRenderer 
{ 
    public Cellrenderer(GridControlBase grid, GridCellModelBase cellModel) 
        : base(grid, cellModel) 
    { 
    } 
    public new GridTableFilterBarCellModel1 Model 
    { 
        get 
        { 
            return (GridTableFilterBarCellModel1)base.Model; 
        } 
    } 
 
    //Overridse ListBoxMouseUP method to call Customized Select method instead of the usual 'Select' method. 
    protected override void ListBoxMouseUp(object sender, MouseEventArgs e) 
    { 
            
        CurrentCell.CloseDropDown(PopupCloseType.Done); 
        GridTableCellStyleInfo tableStyleInfo = (GridTableCellStyleInfo)this.StyleInfo; 
        GridTableCellStyleInfoIdentity tableCellIdentity = tableStyleInfo.TableCellIdentity; 
        Model.Select_WithoutCustom(tableCellIdentity, this.ListBoxPart.SelectedIndex); 
        SetTextBoxText(GetFilterBarText(StyleInfo), false);// don't call base class - ignore. 
        String _FilterBarValue = this.ListBoxPart.SelectedItem.ToString(); 
        GridTableControl _grid = Grid as GridTableControl; 
        int _filed = _grid.TableDescriptor.ColIndexToField(ColIndex); 
        string _columnName = _grid.TableDescriptor.Columns[_filed].Name; 
        _grid.TableDescriptor.RecordFilters.Remove(_columnName); 
        if (_FilterBarValue != "(All)") 
            _grid.TableDescriptor.RecordFilters.Add(_columnName, FilterCompareOperator.Equals, this.ListBoxPart.SelectedItem); 
 
    } 
} 
 
Please refer the following KB link to remove the Custom option alone from filter drop down list, 
Let us know whether this helps also if you need any further assistance on this. 

Arulraj A 


CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Please sign in to access our forum

or the page will be automatically redirected to sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

;