ajax分页查询处理

              /**
* ajax分页查询处理模板,该方法用于优化分页,包括查询、处理数据、分页导航等步骤。

* 参数说明:
* cond:查询条件
* url: 查询url
* controot: 数据内容展示root对象
* handle: 数据处理函数(回调函数).参数optins继承至paging,options.data为分页数据,options.query为查询参数。
* pageroot:分页导航root对象
* pagfun: 分页函数,供pager对象调用。一般情况下为paging的上一级调用者,该方法无法传参(可参考WeqiaPage插件)。


* 示例:
* {
* url:"", 
* cond: [], 
* target: $(".cont_root"), 
* handle: task.handle
* }
*/
paging: function(options){
var controot = options.controot;
var handle = options.handle;
var pagfun = options.pagfun;
var pageroot = options.pageroot;
var id = options.id;
if(!pagfun)
pagfun = options.pagfun = arguments.callee.caller;

var cond = options.cond;
var url = options.url;
$wqd.pagingQuery({
url: url,
data: cond,
success: function(datas, query){
options.data = datas;
options.query = query;
handle(options);
},
paging: function(pageInfo){
$wqd.page({selector:pageroot, schFun: pagfun}, pageInfo);
}
});
},

/**
* 分页查询
 * 参数说明:
* url:请求URL,必填;
* async:异步请求,默认false;
* dataType: 'json',
* type:请求模式,默认'post';
* data:请求数据,可空;
* extData:扩展数据,合并到data上,可空;
* pager:分页对象或函数
* schForm: 查询form表单,jquery选择器,可从中获取查询数据data和pager对象,优先使用指定数据和对象
* success: 成功回调函数,默认不处理;
* error: 错误异常回调函数,默认弹框提示

* 示例:
* req = {
* url:'',
* async: true,
* dataType: 'json',
* type: 'post'
* data: [],
* extData: [],
* pager: null,
*  schForm: '',
*  success: function(){},
*  error: function(){}
* }
*/
pagingQuery : function(req){
var defaults = {
url: "", 
async: true, 
dataType: 'json', 
type: 'POST',
data: null, 
extData: null,
pager: "pager", 
schForm: null, 
queryName: "query",
success: function(){},
fail: function(){},
error: function(){}
};
req = $.extend(true, defaults, req);

var pager = null;
if(req.pager){
if(typeof req.pager === "object")
pager = req.pager;
else if(typeof req.pager === "string")
pager =  $wqd.getPager(req.pager);
}else{
pager = $wqd.getPager();
}

// if(req.schForm){
// var $schForm = $(req.schForm);
if(data == null){
data = $(req.schForm)
}
// if(pager == null)
// pager = $schForm.data("pager");
// }

var currpage = 1;
if(pager)
currpage = pager.getCurrentPage();
var pageInfo = this.jsonToArr({'currentPage':currpage,'pageSize':req.pageSize}, req.queryName);
$.merge(req.data, pageInfo);

$.ajax({
'url' : req.url,
'async' : req.async,
'dataType' : req.dataType,
'type' : req.type,
'data' : req.data,
'success' : function(result){
if(req.dataType == "html"){
if(req.success)
req.success(result); 
if(req.paging)
req.paging();
return;
}
if(result.errorMsg || result.errorCode){
if(req.fail)
req.fail(result);
return;
}
var data = result.list;
var query = result.query;
if(req.success)
req.success(data, query);

if(req.paging){
var pageInfo = {"totalPage": query.totalPage, "page": query.currentPage, "totalItem": query.totalItem};
req.paging(pageInfo);
}
},
'error' : function(rep){
if(req.error)
req.error(rep);
// else
// alert('请求出错!');
}
});
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值