Вот один из способов сделать это:
- Создайте новый источник данных для модели, в которой вы хотите искать.
- Выберите
Query Script
в качестве типа запроса. - Добавление строкового параметра с именем
searchCriteria
- Добавление набора параметров с именами
parameter0
, parameter1
, parameter2
и т. Д. - Введите этот код в качестве сервераСкрипт (при условии, что поле, в котором вы хотите искать, называется Name):
var searchCriteria = query.parameters.searchCriteria;
if(searchCriteria === null) return query.run();
var searchArray = searchCriteria.split(/( and | or )/i);
var searchString = '';
for(var i = 0; i < searchArray.length; i++){
if(i % 2 === 0 ){
searchString += 'Name contains :parameter' + i.toString() + ' ';
query.parameters['parameter' + i.toString()] = searchArray[i];
}else{
searchString += searchArray[i];
}
}
query.where = searchString;
return query.run();
Затем на вашей странице привяжите текстовое поле, с которым вы хотите выполнить поиск, к
@datasource.query.parameters.searchCriteria
Наконец, измените
onValueEdit
поля поиска на
Reload Datasource
ЭтоТехника ограничена количеством создаваемых пронумерованных параметров и не позволяет использовать скобки.