ASP.NET Core MVC Controls | ComponentOne
In This Topic
    FlexSheetFilter Class
    In This Topic
    File
    wijmo.grid.sheet.js
    Module
    wijmo.grid.sheet
    Base Class
    FlexGridFilter

    Implements an Excel-style filter for FlexSheet controls.

    To enable filtering on a FlexSheet control, create an instance of the FlexSheetFilter and pass the grid as a parameter to the constructor.

    Constructor

    Properties

    Methods

    Events

    Constructor

    constructor

    constructor(grid: FlexGrid, options?: any): FlexGridFilter
    

    Initializes a new instance of the FlexGridFilter class.

    Parameters
    Optional

    Initialization options for the FlexGridFilter.

    Inherited From
    FlexGridFilter
    Returns
    FlexGridFilter

    Properties

    activeEditor

    Gets the active ColumnFilterEditor.

    This property allows you to customize the filter editor when handling the filterChanging event. It returns null when no filters are being edited.

    Inherited From
    FlexGridFilter
    Type
    ColumnFilterEditor

    defaultFilterType

    Gets or sets the default filter type to use.

    This value can be overridden in filters for specific columns. For example, the code below creates a filter that filters by conditions on all columns except the "ByValue" column:

    import { FlexGridFilter, FilterType } from '@mescius/wijmo.grid.filter';
    let filter = new FlexGridFilter(flex);
    filter.defaultFilterType = FilterType.Condition;
    let col = flex.getColumn('ByValue'),
        cf = filter.getColumnFilter(col);
    cf.filterType = FilterType.Value;
    

    The default value for this property is **FilterType.Both**.

    Inherited From
    FlexGridFilter
    Type
    FilterType

    excludedRowsSet

    Gets/set the Set that contains rows updated after filter is applied, WJM-32107

    Inherited From
    FlexGridFilter
    Type
    WeakSet

    exclusiveValueSearch

    Gets or sets a value that determines whether the filter should include only values selected by the filterText property.

    The default value for this property is **true**, which matches Excel's behavior.

    Set it to false to disable this behavior, so searching only affects which items are displayed on the list and not which items are included in the filter.

    Inherited From
    FlexGridFilter
    Type
    boolean

    filterColumns

    Gets or sets an array containing the names or bindings of the columns that have filters.

    Setting this property to null or to an empty array adds filters to all columns.

    Inherited From
    FlexGridFilter
    Type
    string[]

    filterDefinition

    Gets or sets the current filter definition as a JSON string.

    Type
    string

    grid

    Gets a reference to the FlexGrid that owns this filter.

    Inherited From
    FlexGridFilter
    Type
    FlexGrid

    reApplyFilterOnUpdate

    Gets or sets a value indicating whether to apply filter on the updated rows. If this property is set to true, then events such as row update, row insertion, sorting etc refreshes filter and rows which do not pass filter gets filtered out. IF this property is set to false, then filter is not applied immediately and we need to click the apply button again to refresh filter. For complete excel behavior you also need to set the refreshOnEdit property refreshOnEdit of CollectionView to false *

    // For flexgrid
    flexgrid.collectionView.refreshOnEdit = false;

    // For flexsheet flexSheet.itemsSourceChanged.addHandler((s, e) => { if(s.collectionView){ s.collectionView.refreshOnEdit = false; } });

    The default value for this property is **false**.

    Inherited From
    FlexGridFilter
    Type
    boolean

    showFilterIcons

    Gets or sets a value indicating whether the FlexGridFilter adds filter editing buttons to the grid's column headers.

    If you set this property to false, then you are responsible for providing a way for users to edit, clear, and apply the filters.

    The default value for this property is **true**.

    Inherited From
    FlexGridFilter
    Type
    boolean

    showSortButtons

    Gets or sets a value indicating whether the filter editor should include sort buttons.

    By default, the editor shows sort buttons like Excel does. But since users can sort columns by clicking their headers, sort buttons in the filter editor may not be desirable in some circumstances.

    The default value for this property is **true**.

    Inherited From
    FlexGridFilter
    Type
    boolean

    Methods

    apply

    apply(): void
    

    Applies the current column filters to the sheet.

    Returns
    void

    clear

    clear(): void
    

    Clears all column filters.

    Inherited From
    FlexGridFilter
    Returns
    void

    closeEditor

    closeEditor(): void
    

    Closes the filter editor.

    Returns
    void

    editColumnFilter

    editColumnFilter(col: any, ht?: HitTestInfo): void
    

    Shows the filter editor for the given grid column.

    Parameters
    Optional

    A HitTestInfo object containing the range of the cell that triggered the filter display.

    Returns
    void

    getColumnFilter

    getColumnFilter(col: Column, create?: boolean): FlexSheetColumnFilter
    

    Gets the filter for the given column.

    Parameters
    • col: string | number | wijmo.grid.Column

      The Column that the filter applies to (or column name or index).

    • create: boolean
    Optional

    Whether to create the filter if it does not exist.

    Returns
    FlexSheetColumnFilter

    onEditingFilter

    onEditingFilter(e: CellRangeEventArgs): void
    

    Raises the editingFilter event.

    Parameters
    Inherited From
    FlexGridFilter
    Returns
    void

    onExclusiveValueSearchChanged

    onExclusiveValueSearchChanged(e?: EventArgs): void
    

    Raises the exclusiveValueSearchChanged event.

    Parameters
    Inherited From
    FlexGridFilter
    Returns
    void

    onFilterApplied

    onFilterApplied(e?: EventArgs): void
    

    Raises the filterApplied event.

    Parameters
    Inherited From
    FlexGridFilter
    Returns
    void

    onFilterChanged

    onFilterChanged(e: CellRangeEventArgs): void
    

    Raises the filterChanged event.

    Parameters
    Inherited From
    FlexGridFilter
    Returns
    void

    onFilterChanging

    onFilterChanging(e: CellRangeEventArgs): boolean
    

    Raises the filterChanging event.

    Parameters
    Inherited From
    FlexGridFilter
    Returns
    boolean

    Events

    editingFilter

    Occurs when a column filter is about to be edited by the user. Use this event to customize the column filter if you want to override the default settings for the filter.

    This event fires before the filter editor is created, so the activeEditor property is null at this point. If you want to customize the editor, use the filterChanging event.

    For example, the code below customizes the list of country names in the value filter editor so "Italy" is always the first value:

    new FlexGridFilter(theGrid, {
        editingFilter: (s, e) => {
            if (e.getColumn().binding == 'country') {



    // start with Italy let vals = ["Italy"];


    // append other unique values (except Italy) let valueFilter = s.getColumnFilter("country", true).valueFilter; valueFilter.uniqueValues = null; valueFilter.getUniqueValues().forEach(item => { if (item.text != "Italy") { vals.push(item.text); } });


    // assign custom unique value list to the valueFilter valueFilter.uniqueValues = vals; valueFilter.sortValues = false; } } });

    Inherited From
    FlexGridFilter
    Arguments
    CellRangeEventArgs

    exclusiveValueSearchChanged

    Occurs after the exclusiveValueSearch is changed.

    Inherited From
    FlexGridFilter
    Arguments
    EventArgs

    filterApplied

    Occurs after the filter is applied.

    Inherited From
    FlexGridFilter
    Arguments
    EventArgs

    filterChanged

    Occurs after a column filter has been edited by the user.

    Use the event parameters to determine the column that owns the filter and whether changes were applied or canceled.

    Inherited From
    FlexGridFilter
    Arguments
    CellRangeEventArgs

    filterChanging

    Occurs when a column filter is about to be edited by the user.

    Use this event to customize the filter editor if you want to override its default settings. You can use the activeEditor property to get a reference to the currently active filter editor.

    For example, the code below applies a custom sort to the list of country names in the value filter editor so "Italy" is always the first value:

    new FlexGridFilter(theGrid, {
        filterChanging: (s, e) => {
            if (e.getColumn().binding == "country") {
                let edt = s.activeEditor,
                    lbHost = edt.hostElement.querySelector('[wj-part=div-values]'),
                    lb = Control.getControl(lbHost) as ListBox;
                (lb.collectionView as CollectionView).sortComparer = (a: any, b: any) => {
                    if (a != b) { // sort Italy first
                        if (a == 'Italy') return -1;
                        if (b == 'Italy') return +1;
                    }
                    return null; // use default sort order
                }
                lb.collectionView.refresh();
            }
        },
    });
    
    

    Inherited From
    FlexGridFilter
    Arguments
    CellRangeEventArgs