请问jquery 的jqGrid插件能不能数据在前台js中分页的,就是说,我数据一次性从后台取出,在前台页面通过jqGrid来自动分页,如:我有90条记录一次给前台,而jqGrid帮我在前台实现共10页,每页10条记录的显示
3条回答 默认 最新
- suziwen 2010-03-16 20:48关注
建议你改这段代码
[code="js"]
var populate = function () {
if(!grid.hDiv.loading) {
beginReq();
var gdata, prm = {nd: (new Date().getTime()), _search:ts.p.search};
prm[ts.p.prmNames.rows]= ts.p.rowNum; prm[ts.p.prmNames.page]= ts.p.page;
prm[ts.p.prmNames.sort]= ts.p.sortname; prm[ts.p.prmNames.order]= ts.p.sortorder;
gdata = $.extend(ts.p.postData,prm);
if (ts.p.search ===true) {gdata =$.extend(gdata,ts.p.searchdata);}
if ($.isFunction(ts.p.datatype)) {ts.p.datatype(gdata);endReq();}
var rcnt = ts.p.scroll===false ? 0 : ts.rows.length-1;
switch(ts.p.datatype)
{
case "json":
$.ajax({url:ts.p.url,type:ts.p.mtype,dataType:"json",data: gdata, complete:function(JSON,st) { if(st=="success") {addJSONData(eval("("+JSON.responseText+")"),ts.grid.bDiv,rcnt); JSON=null;if(loadComplete) {loadComplete();}}}, error:function(xhr,st,err){if(loadError) {loadError(xhr,st,err);}endReq();}, beforeSend: function(xhr){if(loadBeforeSend) {loadBeforeSend(xhr);}}});
if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
break;
case "xml":
$.ajax({url:ts.p.url,type:ts.p.mtype,dataType:"xml",data: gdata , complete:function(xml,st) {if(st=="success") {addXmlData(xml.responseXML,ts.grid.bDiv,rcnt); xml=null;if(loadComplete) {loadComplete();}}}, error:function(xhr,st,err){if(loadError) {loadError(xhr,st,err);}endReq();}, beforeSend: function(xhr){if(loadBeforeSend) {loadBeforeSend(xhr);}}});
if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
break;
case "xmlstring":
addXmlData(stringToDoc(ts.p.datastr),ts.grid.bDiv);
ts.p.datastr = null;
ts.p.datatype = "local";
if(loadComplete) {loadComplete();}
break;
case "jsonstring":
if(typeof ts.p.datastr == 'string') { ts.p.datastr = eval("("+ts.p.datastr+")");}
addJSONData(ts.p.datastr,ts.grid.bDiv);
ts.p.datastr = null;
ts.p.datatype = "local";
if(loadComplete) {loadComplete();}
break;
case "local":
case "clientSide":
ts.p.datatype = "local";
sortArrayData();
break;
}
}
};
[/code]多加一个case "self":自己处理的逻辑
这样的话,导航条,查询什么的都会经过该函数。
页面载入时将所有数据放到一个全局变量里,
JQGRID每次请求时都从该变量取,并根据你当前的条件(页数,查询条件等)过滤结果,然后再把结果集交给JQGRID原来的函数处理
(比如if(loadComplete) {loadComplete();})。大体思路是这样
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 buildozer打包kivy app失败
- ¥30 在vs2022里运行python代码
- ¥15 不同尺寸货物如何寻找合适的包装箱型谱
- ¥15 求解 yolo算法问题
- ¥15 虚拟机打包apk出现错误
- ¥15 用visual studi code完成html页面
- ¥15 聚类分析或者python进行数据分析
- ¥15 三菱伺服电机按启动按钮有使能但不动作
- ¥15 js,页面2返回页面1时定位进入的设备
- ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复