我想要客户端分页/排序?在jqgrid中搜索服务器端?

时间:2014-09-24 12:50:28

标签: jquery jqgrid jqgrid-php

我希望从服务器端获取客户端分页/排序和列过滤器数据。我已经使用轮询服务器端ajax调用link并将数据推送到客户端。但我更改 loadonce:false 以从服务器端获取数据,其使用完全用于我的网格的列过滤器。 if loadonce:true所有调用都是客户端排序和分页,因此无法实现列过滤器服务器端。

我希望客户端分页/排序服务器端列过滤器

请帮帮我。

jQuery("#list451").jqGrid({ 
url:'getList.php?mode=result_list', 
datatype: "json",
height: 255, 
width: 600, 
colNames:['Index','Name', 'Code','Result'], 
colModel:[
{name:'item_id',index:'item_id', width:65, sorttype:'integer',searchoptions:{sopt:['eq','ne','le','lt','gt','ge']}},
{name:'item',index:'item', width:150, sorttype:'string',searchoptions:{sopt:['eq','bw','bn','cn','nc','ew','en']}},
{name:'item_cd',index:'item_cd', width:100} ,
{name:'result',index:'result', width:100,sorttype:'string',searchoptions:{sopt:['eq','ne']} ], 
rowNum:50, 
rowTotal: 200,
rowList : [20,30,50], 
loadonce:false, 
mtype: "GET", 
rownumbers: true,
rownumWidth: 40, 
gridview: true, 
pager: '#pager451', 
sortname:'item_id', 
viewrecords: true, 
sortorder: "asc", 
caption: "Loading data from server at once" });
jQuery("#list451").jqGrid('filterToolbar',{searchOperators : true});

轮询代码在

之下
function poll() {

var pollOutputJson;
$.ajax({

    type: "POST",
    url: server.php ? q = 5,
    contentType : "application/json; charset=utf-8",
    dataType: "json",
    async: true,
    cache: false,
    success: function (data) {
        pollOutputJson = data;
        var samGrid = jQuery("#list5");
        var su = samGrid.jqGrid('addRowData', 0, pollOutputJson);
        samGrid.setGridParam({
            rowNum: 15
        }).trigger("reloadGrid");
    },
    error: function (x, e) {
        alert("error occur");
    }
});
setTimeout((function (param) {
    return function () {
        poll();
    };
})(), 180000);
}   

1 个答案:

答案 0 :(得分:1)

我不想评论function poll我发现哪些代码非常怀疑。我想回答一下你的主要问题,即loadonce: true与客户端分页/排序的使用,但是从服务器加载过滤后的数据(filterToolbar)。

您只需使用beforeSearch的{​​{1}}回调即可将filterToolbar重置为datatype