我希望从服务器端获取客户端分页/排序和列过滤器数据。我已经使用轮询服务器端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);
}
答案 0 :(得分:1)
我不想评论function poll
我发现哪些代码非常怀疑。我想回答一下你的主要问题,即loadonce: true
与客户端分页/排序的使用,但是从服务器加载过滤后的数据(filterToolbar
)。
您只需使用beforeSearch
的{{1}}回调即可将filterToolbar
重置为datatype
。