Skip to content

Replies

0
Bary
Bary answered on Sep 7, 2011 1:08 PM

It doesn't work though.

0
Bary
Bary answered on Aug 31, 2011 4:59 PM

Yes, exactly, the grid reloads with all data. Here is my code, I'm using a drop down list instead of a button:

function FilterBuySelectedGrid(GridID, ddlID) {
    var grid = $find(GridID);
    var ddl = document.getElementById(ddlID);
    var index;
    var columnKey;
    if (ddl) {
        index = ddl.options[ddl.selectedIndex].value;
        switch (index) {
            case "InStock":
                columnKey = "O_Stock";
                break;
            default:
                columnKey = "HasConflict";
                break;
        }
    }

    if (grid && ddl) {
        var columnFilter = grid.get_behaviors().get_filtering().create_columnFilter(columnKey);
        if (columnFilter) {
            var condition = columnFilter.get_condition();

            switch (index) {
                case "All":
                    grid.get_behaviors().get_filtering().clearColumnFilters();
                    break;
                case "InStock":
                    grid.get_behaviors().get_filtering().clearColumnFilters();
                    condition.set_rule($IG.NumericFilterRules.GreaterThan);
                    condition.set_value(0);
                    break;
                case "Exact":
                    grid.get_behaviors().get_filtering().clearColumnFilters();
                    condition.set_rule($IG.BooleanFilterRules.False);
                    break;
                case "Conflicts":
                    grid.get_behaviors().get_filtering().clearColumnFilters();
                    condition.set_rule($IG.BooleanFilterRules.True);
                    break;
            }

            // Create an array for the two filters
            var columnFilters = new Array(columnFilter);

            // Add array of filters
            grid.get_behaviors().get_filtering().add_columnFilterRange(columnFilters);

            // Call apply filter
            grid.get_behaviors().get_filtering().applyFilters();
        }
    }
}

0
Bary
Bary answered on Aug 31, 2011 4:42 PM

Yes, I know you have to get the grid first. What I meant was I'm stepping through the 'clearColumnFilters()' method below, and and the filters are not being removed.

 

grid.get_behaviors().get_filtering().clearColumnFilters()

0
Bary
Bary answered on Aug 31, 2011 3:12 PM

I'm stepping through your code and this._columnFilters.length is greater than 0 even after all of the code in this function runs. Please help.

 

    /// <summary>
    /// Deletes all column filter from the column filters array
    /// </summary>
    clearColumnFilters: function()
    {
        if (this._columnFilters.length > 0)
        {
            var eventArgs = new $IG.ColumnFilterAddingRemovingEventArgs(this);

            this._grid._actionList.add_transaction(new $IG.FilteringAction("ClearColumnFilters", this.get_name(), this._grid, null, null));
            this._grid._raiseClientEventEnd(eventArgs);
        }
    },

0
Bary
Bary answered on Aug 31, 2011 3:04 PM

I have tried the line of code below and it doesn't work. Do you have to assign it to a variable?

 

grid.get_behaviors().get_filtering().clearColumnFilters()