Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
620
Filtering add colum filter range
posted

Hello everybody,

I'm going to implement a custom filter on webdatagrid client side. So I need filter on many columns.

But I have a occured error.

When I add the Array of filter, with "add_columnFilterRange()" , I throw an exception....(Sys.InvalidOperationException)

Look at my javascript code :

function Filter() {

var grid = $find("<%= Gri_Cli.ClientID%>");

var searchTextBox = $get("<%= Txt_Rec.ClientID %>");

var filtering = grid.get_behaviors().get_filtering();

// creer un tableau des filtres

var columnFilters = new Array();

for (z_I = 0; z_I < grid.get_columns().get_length() ; z_I++) {

if (grid.get_columns().get_column(z_I).get_type() == "string") {

// verifie qu'ona un filtre sur la colonnes

var columnFilter = filtering.get_columnFilter(z_I);

var colFilterExists = (columnFilter ? true : false);

if (colFilterExists) {

// condition du filtre

columnFilter.get_condition().set_rule($IG.TextFilterRules.Contains);

columnFilter.get_condition().set_value(searchTextBox.value);

// ajoute le filtre au tableau

columnFilters[z_I] = columnFilter;

}

}

}

// ajoute le tableau de filtres

grid.get_behaviors().get_filtering().add_columnFilterRange(columnFilters);  <--- error

if (searchTextBox.value != '') {

// applique le filtre

filtering.applyFilters();

} else {

// enleve rout les filtres

filtering.clearColumnFilters();

}

 

}

 

Check the error on the file attachment.

 

Why it doesn't work?

Could you help me please ?

Thanks in advance.

JP

 

  • 620
    Verified Answer
    posted

    I found

    function

    Filter() {

    var grid = $find("<%= Gri_Cli.ClientID%>");

               

    var searchTextBox = $get("<%= Txt_Rec.ClientID %>");

               

    var filtering = grid.get_behaviors().get_filtering();

               

    // creer un tableau des filtres

               

    var columnFilters = new Array();

               

    for (z_I = 0; z_I < grid.get_columns().get_length() ; z_I++) {

                   

    if (grid.get_columns().get_column(z_I).get_type() == "string") {

                       

    switch (grid.get_columns().get_column(z_I).get_key())

                        {

                           

    case "ID":

                               

    // creer le filtre

                               

    var columnFilter = grid.get_behaviors().get_filtering().create_columnFilter(grid.get_columns().get_column(z_I).get_key());

                               

    // condition du filtre

                                columnFilter.get_condition().set_rule($IG.TextFilterRules.Contains);

                                columnFilter.get_condition().set_value(searchTextBox.value);

                               

    // ajoute le filtre au tableau

                                columnFilters[z_I] = columnFilter;

                               

    break;

                           

    default :

                               

    break;

                        }

                    }

                }

               

    // ajoutele tableau de filtres

                grid.get_behaviors().get_filtering().add_columnFilterRange(columnFilters);

               

    if (searchTextBox.value != '') {

                   

    // applique le filtre

                    filtering.applyFilters();

                }

    else {

                   

    // enleve rout les filtres

                    filtering.clearColumnFilters();

                }

     

            }