JqG​​rid中的自定义搜索表单

时间:2012-03-06 06:26:55

标签: php javascript jquery json jqgrid

我正在尝试使用PHP MVC结构的JqGrid。 我不想使用Jq Grid的搜索功能,而是希望使用常规关键字搜索。 我在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 }); ;
});  

1 个答案:

答案 0 :(得分:1)

最简单的方法是将搜索输入字段#txtsearch中的当前值发送到网址"manageagents/getagents/"。只需将postData参数添加到属性中,就像将要发送到服务器的参数名称(如myFilter)一样:

postData: {
    myFilter: function () { return $("#txtsearch").val(); }
}

您可以在the answer中阅读更多详情。

doSearch函数内部,您只需调用

即可
jQuery("#agentlist").trigger("reloadGrid", [{page: 1}]);