我正在尝试使用PHP MVC结构的JqGrid。我不想使用JqGrid的搜索功能,而是想要通用关键字搜索。我有json数组中的数据。请告诉我如何使用json数据集进行搜索。
此搜索应在多个列上执行。
这是我的搜索表单
<form name="frmsearch" id="frmsearch">
<input type="text" id="txtsearch" name="txtsearch"/>
<a href="javascript:void(0);" onClick="doSearch();">Search</a>
</form>
这是我的网格
$(document).ready(function () {
jQuery("#agentlist").jqGrid({
url: "manageagents/getagents/",
datatype: "json",
mtype:"POST",
jsonReader: {
root: "rows",
page: "currpage",
total: "totalpages",
records: "totalrecords",
id: "0",
cell:"",
repeatitems: false
},
colNames: ['Id','Agent Name', 'Email Address', 'Phone No.1', 'Phone No.2','City', 'State', 'Country'],
colModel: [
... ... ...
],
rowNum:<?php echo $this->config->item('per_page');?>,
rowList:<?php echo $this->config->item('nav_page');?>,
pager: '#plist',
autowidth: true,
height: "100%",
loadonce: true,
viewrecords: true,
altRows:true,
caption: "",
}).navGrid('#plist', { edit: false, add: false, del: false, search: true, refresh: false }); ;
});
执行所需操作的最简单方法是将当前值从搜索输入字段#txtsearch
发送到URL "manageagents/getagents/"
。添加postData
参数就足够了,其属性类似于将发送到服务器的参数名称(如myFilter
):
postData: {
myFilter: function () { return $("#txtsearch").val(); }
}
你可以阅读答案中的更多细节。
在doSearch
函数内部,您可以直接调用
jQuery("#agentlist").trigger("reloadGrid", [{page: 1}]);