#jquery-ui #search #jquery-plugins #jqgrid
#jquery-пользовательский интерфейс #Поиск #jquery-плагины #jqgrid
Вопрос:
Я столкнулся с проблемой с множественным поиском jqgrid (серверная часть php). В диалоговом окне поиска не отображается » » (добавить фильтр), пока я не нажму на кнопку сброса…
Это код:
jQuery("#poi_grid").jqGrid({
url:'php/retrieve_pois.php',
datatype: "json",
colNames:['Name', 'Region', 'Type','Website','PDF','Lat','Lon'],
colModel:[
{name:'name',index:'name', width:150},
{name:'region',index:'region', width:70},
{name:'type',index:'type', width:70},
{name:'website',index:'website', width:90,sortable:false,search:false},
{name:'pdf',index:'pdf', width:150,align:"right",sortable:false,search:false},
{name:'lat',index:'lat', width:60, sortable:false,search:false},
{name:'lon',index:'lon', width:60, sortable:false,search:false},
],
pager:'#pager',
rowNum:20,
rowList:[20,30,50],
sortname: 'name',
viewrecords: true,
sortorder: "asc"
});
//Pager
jQuery("#poi_grid").jqGrid('navGrid','#pager',
{edit:false,add:false,del:false,search:false,refresh:false}
)
//Custom buttons
.navButtonAdd('#pager',{
caption:"",
title:"Search",
buttonicon:"ui-icon search",
onClickButton: function(){
jQuery("#poi_grid").jqGrid('searchGrid',
{sopt:['eq','ne','cn','bw','bn']},
{multipleSearch:true}
);
},
position:"last"
});
Это то, что я получаю, когда открываю диалоговое окно поиска (поиск работает нормально, но у меня нет возможности добавить другой фильтр):
Когда я нажимаю на кнопку rest в левом нижнем углу диалогового окна (даже без предварительного поиска) Я вижу «правильную» структуру диалога … и поиск по нескольким фильтрам работает:
Как решить и получить полное диалоговое окно, не нажимая на сброс? Заранее благодарю вас
Ответ №1:
Вы допустили ошибку при вызове searchGrid
. Вместо
jQuery("#poi_grid").jqGrid('searchGrid',
{sopt:['eq','ne','cn','bw','bn']},
{multipleSearch:true}
);
вы должны использовать
jQuery("#poi_grid").jqGrid('searchGrid',
{sopt:['eq','ne','cn','bw','bn'], multipleSearch:true}
);
Проблема, которую вы описываете с помощью кнопки «Сброс», — это просто ошибка в поиске по одному полю в jqGrid (подробнее здесь). Из-за неправильного использования searchGrid
этой multipleSearch:true
опции будет проигнорирован, и диалоговое окно поиска будет использоваться как поиск по одному полю.
Ответ №2:
Посмотрите на это.
jqGridObj = $('#poi_grid');
jqGridObj.navButtonAdd('#' jqGridObj[0].id '_toppager_left',{
caption:"",
title:"Search",
buttonicon:"ui-icon-search",
onClickButton: function(){
jqGridObj.jqGrid('searchGrid',
{sopt:['eq','ne','cn','bw','bn'], multipleSearch:true, showQuery: true}
);
},
position:"last"
});