2011-06-13 73 views
0

我正在使用自定义搜索按钮来执行多重搜索。 看萤火似乎有向服务器发送jqGrid空搜索选项

_search true 
filters {"groupOp":"AND","rules":[{"field":"name","op":"bw","data":"A"}]} 
nd 1307956101759 
page 1 
rows 20 
searchField 
searchOper 
searchString 

请求中缺少参数时,我用的是默认的搜索按钮,所有参数都正确增值的和搜索返回匹配的行。

jQuery("#poi_grid").jqGrid({ 
    url:'php/retrieve_pois.php', 
    editurl:'php/edit_pois.php', 
    datatype: "json", 
    colNames:['Name', 'Region', 'Type','Website','PDF','Lat','Lon'], 
    colModel:[ 
     {name:'name',index:'name', width:150, search:true, editable:true}, 
     {name:'region',index:'region', width:70, search:true, editable:true}, 
     {name:'type',index:'type', width:70, search:true, editable:true}, 
     {name:'website',index:'website', width:90,sortable:false,search:false, editable:true}, 
     {name:'pdf',index:'pdf', width:150,align:"right",sortable:false,search:false, editable:true}, 
     {name:'lat',index:'lat', width:60, sortable:false,search:false, editable:true}, 
     {name:'lon',index:'lon', width:60, sortable:false,search:false, editable:true}, 
    ], 
    pager:'#pager', 
    rowNum:20, 
    rowList:[20,30,50], 
    sortname: 'name', 
    viewrecords: true, 
    sortorder: "asc", 
    height:259, 
    onSelectRow: function(id){ 
     if(id && id!==rowid){ 
      jQuery('#poi_grid').restoreRow(rowid); //restore last grid row 
      rowid=id; //save current row ID so that when focus is gone it can be restored 
     } 
    } 
}); 
//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" 
}); 

我在做错事......但是什么?先谢谢你!

回答

0

我不认为请求中有什么遗漏,但sidx=namesord=asc将被发送但未包含在您的数据中。

因为您使用searchGridmultipleSearch:true选项,所有关于搜索参数的信息都在filters参数中进行编码,对应于the documentation。在multipleSearch:fasle的情况下使用的空参数“searchField =”,“searchString =”和“searchOper =”应该被忽略。

+0

sidx和sord被发送......我错过了将它们复制到我的第一条消息中,对不起。 我仍然在努力为多重搜索找到解决方案,但我不明白如何(以及在​​哪里)设置过滤器。你能告诉我一个代码示例吗?谢谢 – alessiodl 2011-06-15 07:12:32

+0

@alessiodl:你不会写下你想要的东西。可能[答案](http://stackoverflow.com/questions/5749723/jqgrid-filtering-records/5750127#5750127)或[另一个](http://stackoverflow.com/questions/5272850/is-there- an-api-in-jqgrid-add-advanced-filters-to-post-data/5273385#5273385)给你提供了缺失的信息?如果你正在寻找别的东西,你应该更确切地指定它。 – Oleg 2011-06-15 07:23:10

+0

可能我没有这么好解释这个问题。使用multipleSearch:true搜索功能停止工作,我不明白我是否需要添加一些东西到第一篇文章中报告的网格代码。 我要检查你链接的答案! Thx – alessiodl 2011-06-15 08:13:43