Конфигурация диалогового окна множественного поиска jqGrid - PullRequest
2 голосов
/ 09 июня 2011

У меня проблема с многократным поиском jqgrid (php back-end). Диалоговое окно поиска не отображает «+» (добавить фильтр), пока я не нажму на кнопку «Сброс» ...

Это код:

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"
 });

Это то, что я получаю, когда открываю диалоговое окно поиска (поиск работает нормально, но у меня нет возможности добавить другой фильтр):

Когда я нажимаю на кнопку отдыха в левом нижнем углу диалогового окна (даже без предварительного поиска), я вижу «правильную» структуру диалога ... и поиск нескольких фильтров работает:

Как решить и получить полный диалог, не нажимая на перезагрузку? Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Вы допустили ошибку при вызове 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 голосов
/ 04 июля 2012

См. Этот.

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"
 });
...