removing "Custom" and "Empty" filter options
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
SIGN IN To post a reply.
1 Reply
AA
Arulraj A
Syncfusion Team
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,
KB link: https://www.syncfusion.com/kb/666/how-do-i-hide-the-custom-option-in-the-filterbar-dropdown
Let us know whether this helps also if you need any further assistance on this.
Arulraj A
SIGN IN To post a reply.
- 1 Reply
- 2 Participants
-
DB Dado Ben-David
- Nov 12, 2018 07:40 PM UTC
- Nov 13, 2018 05:38 AM UTC