Бесплатный параметр поиска jqGrid, исчезающий в filterToolbar
Я использую версию 4.13.1 freejqGrid. Я просто добавил код для панели инструментов фильтра, которая работает, за исключением того, что параметр поиска исчезает после поиска. Поиск работает и все, но я хотел бы оставить этот текст на панели инструментов, пока не будет очищен с помощью (х).
$('#jqGrid_destroyed').jqGrid({
url:'/url.php',
height: 'auto',
shrinkToFit: true,
width: Math.floor($(window).width()*1),
datatype: 'json',
mtype: 'POST',
colNames:[
'Flat ID',
'Customer',
'Flat #',
'MiscCode',
'Item Number',
'Item Description',
'plus',
'RevDate',
'Created Date',
'Plate/Flat in QA',
'Computer Files to Waiting Destruct',
'Plates/Flat Destroyed',
'Date Confimation Sent to Customer'
],
colModel:[
{name:'flat_id',hidden:true},
{width:14,name:'Customer'},
{width:10,name:'flat_plate_num'},
{width:13,name:'MiscCode'},
{width:20,name:'item_number'},
{width:45,name:'item_description'},
{width:12,name:'plus'},
{width:16,name:'revdate'},
{width:22,name:'created_date', align: "right", hidden:true},
{width:17,name:'flat_in_qa'},
{width:20,name:'computer_files_to_waiting_destruct'},
{width:25,name:'flat_destroyed'},
{width:20,name:'date_confimation_sent_to_customer', formatter : 'date', formatoptions : {srcformat: "Y-m-d", newformat:"m/d/Y"}}
],
sortname: 'date_confimation_sent_to_customer',
sortorder: 'desc',
viewrecords: true,
gridview: true,
caption: 'Waiting Destruct',
rowNum: 10000,
pager:true,
searching: { defaultSearch: "cn" }
}).jqGrid("filterToolbar");
1 ответ
В бесплатной jqGrid 4.13.1 появилась новая функция - заполнение панели инструментов фильтра на основе postData.filters
, Смотрите README4.13.1. У функции были некоторые ошибки, которые существуют в вашем случае. Ошибки исправлены в более поздней версии бесплатной jqGrid.
Можно отключить функцию по использованию loadFilterDefaults: false
(по использованию .jqGrid("filterToolbar", {loadFilterDefaults: false})
или лучше, изменив searching: { defaultSearch: "cn" }
в searching: { defaultSearch: "cn", loadFilterDefaults: false }
). С другой стороны, я бы порекомендовал вам обновить до текущей выпущенной версии бесплатной jqGrid: 4.13.5 или использовать последние источники из GitHub.
Опция поиска loadFilterDefaults: false
очень практично во многих сценариях. Например, можно использовать как панель инструментов фильтра, так и диалог поиска. Если вы установите фильтр на панели инструментов фильтра, а затем откроете диалоговое окно поиска, вы увидите текущий фильтр в диалоговом окне. Вы можете изменить его и применить новый фильтр. Сетка покажет новый фильтр, но старые версии jqGrid по-прежнему будут отображать старый фильтр на панели инструментов фильтра. Я разместил старый ответ, который показывает, как можно заполнить панель инструментов фильтра на основе текущего используемого фильтра. Новая версия бесплатной jqGrid обновит панель инструментов фильтра автоматически, если по умолчанию loadFilterDefaults: true
вариант filterToolbar
используется.
Есть и другие распространенные сценарии, в которых loadFilterDefaults: true
было бы полезно. Можно, например, загрузить все данные JSON с сервера, используя loadonce: true
вариант. Бесплатная jqGrid позволяет комбинировать loadonce: true
вариант с forceClientSorting: true
, которые применяют локальную сортировку и фильтрацию, прежде чем данные будут отображаться в сетке. Это позволяет загружать все данные, но отображать только отфильтрованные и отсортированные данные с локальной подкачкой данных. Для фильтрации данных нужно просто установить filters
собственностью postData
, По использованию filterToolbar
по умолчанию loadFilterDefaults: true
Вариант один увидит применяемый в настоящее время фильтр, который может быть полезен для пользователя.