2014-10-06 4 views
1

Я хочу отфильтровать все столбцы в сетке данных на основе or. Для фильтра с одним столбцом (именем) я попытался выполнить функцию ниже и работает правильно.Фильтр сетки данных Dojo для нескольких столбцов

grid.filter({name: "*" + value + "*" }); 

Теперь я хочу использовать этот фильтр для нескольких столбцов на сетке, я попытался ниже код, но это не работает:

grid.filter({name:"*" + value + "*"} || {solution:"*" + value + "*"}); 

Пожалуйста, помогите мне с соответствующим кодом для множественного фильтра столбца в сетке. Я использую Dojo 1.8.1.

ответ

0

Создайте скрытый столбец для фильтрации и поместите объединенные данные, которые вы хотите отфильтровать.

Если ваши данные для датастора являются:

data=[ 
{ name: "smartphone", solution: "use iPhone instead iPod"}, 
{ name: "tablet",  solution: "use iPad instead iPod"}, 
{ name: "iPad",  solution: "use it"} 
] 

добавить столбец forFiltering с каскадными данными других столбцов:

data=[ 
{ name: "smartphone", solution: "use iPhone instead iPod", forFiltering: "smartphone use iPhone instead iPod"}, 
{ name: "tablet",  solution: "use iPad instead iPod", forFiltering: "tablet use iPad instead iPod"}, 
{ name: "iPad",  solution: "use it",     forFiltering: "iPad use it"} 
] 

, а затем сделать фильтрацию по этому столбцу:

grid.filter({forFiltering:"*" + value + "*"}); 
+0

Пожалуйста, дайте пример кода, если вы можете. – ouflak

+0

@ dori-naji решение для: 'condition1 и condition2', Swpno запрашивает: 'значение находится в поле1 или в поле2' –

0

ЕСЛИ Я правильно понимаю ваш вопрос, вы можете просто отделить два аргумента для фильтра h a запятая. поэтому вместо grid.filter({name:"*" + value + "*"} || {solution:"*" + value + "*"});

вы должны использовать grid.filter({name:"*" + value + "*",solution:"*" + value + "*"});

вы можете проверить это рабочий пример в jsfiddle