Я использую jqGrid с панелью инструментов фильтра, я должен установить начальное значение фильтра по умолчанию к одному из полей так, чтобы только строки с состоянием 'Open' были отображены по умолчанию, но пользователь может отобразить Закрытые строки при желании.
В данный момент у меня есть обходное решение как это
setTimeout(function() {$('#gs_Status').val('Open');$("#eventsGrid")[0].triggerToolbar()},500);
но это приводит к второму запросу и довольно плохо действительно.
Кто-либо знает, как сделать это?
Править: Немного больше исследования говорит мне, что это, вероятно, невозможно :(
Вы смотрели Поиск на панели инструментов и Дополнительные сеточные методы в вики-документации jqGrid? Похоже, вы можете использовать filterToolbar
, чтобы установить фильтр, и triggerToolbar
, чтобы установить фильтр. Я сам не пробовал это сделать, но вы, вероятно, сможете сделать это в loadComplete
, как только данные будут загружены для сетки.
Это поможет?
Для этого необходимо выполнить несколько шагов:
Более подробно:
Установите тип данных сетки на локальный (это предотвращает начальную загрузку данных) и установите значение по умолчанию для параметров поиска:
$("#mytable").jqGrid({
datatype: "local",
colNames:['Keyword','Selected'],
colModel:[
{name:'keyword',
sortable:true,
searchoptions: { defaultValue:'golf' }
},
{name:'selected',
sortable:false,
searchoptions: { }
},
....
....
Затем добавьте панель инструментов фильтра, установите тип данных и URL , и активируйте загрузку:
$('#mytable').jqGrid('filterToolbar', {autosearch: true});
$('#mytable').setGridParam({datatype: 'json', url:'/get_data.php'});
$('#mytable')[0].triggerToolbar();