Триггер фильтра jqGrid Force - PullRequest
       15

Триггер фильтра jqGrid Force

0 голосов
/ 24 августа 2011

У меня есть jqGrid 4.1.2, и я пытаюсь заставить фильтры запускаться на $ (document) .ready (

. Чего я хочу добиться - это заполнить одно из полей фильтрации значениями и "нажать ввод"так jqGrid отфильтровывает его.

Я передал значения на страницу с помощью GET, распространил значение поля фильтра следующим образом:

         var filteritem = document.getElementById("gs_fieldToBeFilteredID");
         filteritem.value = "MY filter value";

Это вызывает заполнение поля фильтра"Мое значение фильтра ". Но теперь я пытаюсь вызвать" enter press "в конце документа следующим образом:

$(document).ready(function () {

     $("#myGrid")[0].triggerToolbar();
}
);

Я также пытался

 jQuery("#myGrid").jqGrid("filterToolbar");

без эффекта.Я также поместил приведенный выше код в событие jCGrid loadComplete без эффекта. Фильтр заполнен, но я "не могу" заставить его запустить фильтрацию ... есть идеи?!

Буду признателен за любую помощь. С уважением,

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Мне кажется, что старая демка из ответ - это то, что вам нужно.

После того, как вы установили value для элемента <input>, выможет вызвать фильтр change и затем использовать

$(filteritem).focus().trigger({ type : 'keypress', charCode : 13 });

Зависит от того, где вы инициируете событие keypress, которое вам может потребоваться сделать в отдельном потоке .Так что может быть, вам нужно будет сделать это в setTimeout, как я это делал в демоверсии.

0 голосов
/ 24 августа 2011

Вы должны иметь возможность добавлять данные публикации в сетку, это то, что вам нужно, чтобы вам не нужно было повторно запускать сетку для перезагрузки. Он получит его в рамках первоначального запроса.

Вот полная статья: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:post_data_module

Я сделал это с событием «перед запросом», настроив функцию, которая добавляет нужные вам данные.

function jqGridBeforeRequest()
{
   $(this).appendPostData(<JSON/object data here>);
}
...