Jqgrid и отправка настроек фильтра на сервер

#jquery #jqgrid

#jquery #jqgrid

Вопрос:

Я некоторое время боролся с этим и просто не могу с этим разобраться. Я уверен, что это не слишком сложно. У меня есть пользовательская кнопка на панели инструментов, которая публикует в cfc. Я хочу опубликовать в _search и filter. _search прост, но я не могу понять синтаксис фильтра. Код такой

       .jqGrid ('navButtonAdd', '#pager', { caption: "", buttonicon: "ui-icon-calculator", title: "Export",
      onClickButton: function() {
          $.post("scripts/records.cfc?method=getRecordsExcelamp;returnFormat=json", {_search:true, filters:$.filters}, function(res) {
            },"json");
      }
  })
  

Спасибо за любую помощь
Отметить

Ответ №1:

Если вы используете поиск на панели инструментов и хотите перезагрузить сетку с данными с сервера, используя текущие фильтры на панели инструментов поиска, вы можете сделать это с помощью triggerToolbar метода:

 $("#list")[0].triggerToolbar();
  

(смотрите документацию).

Комментарии:

1. Олег, спасибо за твой ответ. Я не использую поиск на панели инструментов. Моя серверная функция ожидает получения _search и filters в качестве параметров. Я просто не могу понять, как опубликовать в объекте filter. Заранее спасибо, Отметьте

2. @cfrunningman: Какой режим поиска вы используете? Поиск на панели инструментов, используемый с stringResult: true (кстати, моя стандартная настройка), например, также отправляет _search и filters параметры. Если вы установите только параметры jqGrid postData.filters для вашего фильтра и search в true , а затем вызовете .trigger('reloadGrid') , то нужные вам данные будут отправлены на сервер.

3. Олег, я использую множественный поиск: верно. Мой поиск работает нормально. Я просто хочу опубликовать критерии поиска в своей функции, которая создает отчет на стороне сервера. Когда я просматриваю firebug после поиска, я вижу параметры _search и filters. Но когда я нажимаю свою пользовательскую кнопку, я вижу только параметр _search, а не параметр filter (вероятно, потому, что мой синтаксис неверен). Я действительно не хочу перезагружать сетку, поиск уже был применен. Спасибо, Марк

4. @cfrunningman: Поставьте нам $grid лайк var $grid = $("#list") . вы можете получить значение для _search как $grid[0].search . filters как $grid[0].postData.filters

5. Если я попробую либо $grid [0].search, либо $grid [0].postData.filters, я получу undefined. Я не думал, что это будет так сложно. Даже console.log($grid[0].search); выдает мне undefined, отметку