2014-01-13 5 views
3

У меня есть настройки экземпляра сетки что-то вроде этого:jqgrid: как отправить информацию поиска оператора на стороне сервера

$("#list").jqGrid({ 
     url:'rest/usertest/users', 
     datatype: "json", 
     mtype: "POST", 
     colNames: ["Username", "Name", "Grouping"], 
     colModel: [ 
      { name: "username" }, 
      { name: "name", width: 90 }, 
      { name: "grouping", width: 80, sorttype:'string',searchoptions:{sopt:['eq','bw','bn','cn','nc','ew','en']}}, 
     ], 
     pager: "#pager", 
     rowNum: 10, 
     rowList: [10, 20, 30], 
     sortname: "username", 
     sortorder: "asc", 
     viewrecords: true, 
     multiselect: false, 
     autowidth: true, 
     height: 'auto', 
     gridview: true, 
     multiSort: true 
    }); 
    jQuery("#list").jqGrid('filterToolbar',{searchOnEnter : false,searchOperators : true}); 

Я пытаюсь сделать поиск, основанный на стороне сервера операндом через сетку. Проблема заключается в том, что он не отправляет информацию о выбранном операторе на сервер. Запрос не содержит информации о выбранном операторе (eq, bw, bn и т. Д.).

Я пытаюсь сделать это с помощью поиска панели инструментов. У меня отсутствует какой-либо параметр конфигурации? Пожалуйста посоветуй.


EDIT:

Я попробовал ответ, данный ниже, @Tomcat, однако он по-прежнему не работает. Поиск выполняется успешно, но я не могу заставить работу поиска на основе операндов на стороне сервера.

Как и на рисунке ниже, информация о выбранном операнде отсутствует.

request

ответ

0

Попробуйте добавить к настройке сетки следующих свойств:

searchOperators: true, 
search: true, 

После этого запроса к серверу должен содержать следующие параметры: «фильтры» - фильтр поиска, «sidx» -filed для сортировки, «sord» - порядок сортировки ('asc' или 'desc'), '_search' - bool trigger для поиска.


ОК, пожалуйста, взгляните на этот код, он работает и отправляет всю необходимую информацию. Обратите внимание на JQuery ("# список"). JqGrid ('filterToolbar', { свойство.

jQuery("#list").jqGrid('filterToolbar', { 
     searchOnEnter: false, 
     searchOperators: true, 
     multipleSearch: true, 
     stringResult: true, 
     groupOps: [{ op: "AND", text: "all" }, { op: "OR", text: "any" }], 
     defaultSearch: 'cn', ignoreCase: true 
    }); 

Надеется, что это будет полезно.

+0

Нет, все еще не работает. Я редактировал вопрос. Пожалуйста, взгляните. –

2

Имея stringResult : true необходим.

$('#list').filterToolbar({ 
     groupOp: 'OR', 
     defaultSearch: "cn", 
     autosearch: true, 
     searchOnEnter: true, 
     searchOperators: true, // activates the operators menu 
     stringResult : true // activates multi-field search 
    }); 
Смежные вопросы