ДОдзё:Добавление нескольких условий для запроса dojox.grid.DataGrid
-
21-09-2019 - |
Вопрос
Я пытаюсь создать DOJO DataGrid, заполненный с помощью dojo.data.ItemFileReadStore очень простыми данными json, имеющими идентификатор и описание.Когда происходит событие, мне нужно фильтровать отображаемые строки на основе идентификаторов.Если это один идентификатор, я могу это исправить, просто добавив myGrid.setQuery({ID:"someIdIWant"});
Есть ли способ отфильтровать более одного идентификатора в одном фрагменте кода?Например, я хочу фильтровать ID1 и ID2 для отображения.У меня нет URL-адреса REST, мои данные заполняются как переменные JavaScript.Могу ли я по-прежнему использовать JsonQueryRestStore, используя только данные json в JS vars или dojo.data.ItemFileReadStore?
Решение
dojo.data.ItemFileReadStore поддерживает использование в запросе регулярных выражений.Внутренний код ItemFileReadStore использует dojo.data.util.filter.patternToRegExp(), чтобы определить, может ли строковое значение в вашем запросе быть проанализировано как регулярное выражение.Однако, если быть более точным, вы можете передать в запрос объект RegExp.Два варианта выглядят следующим образом:
myGrid.setQuery({ID:"123|124"});
// or
myGrid.setQuery({ID: new RegExp("123|124")});
Оба примера извлекают два элемента с идентификаторами «123» и «124» соответственно.