Javascript 如何动态调用ajax来实现分页
我有以下javascript代码,其类名为PurchaseHistoryJavascript 如何动态调用ajax来实现分页,javascript,jquery,html,Javascript,Jquery,Html,我有以下javascript代码,其类名为PurchaseHistory var baseUrl = null; var parameters = null; var currentPageNumber = null; var TotalPages = null; var PageSize = null; $(document).ready(function () { baseUrl = "http://localhost/API/service.svc/GetOrderHistory
var baseUrl = null;
var parameters = null;
var currentPageNumber = null;
var TotalPages = null;
var PageSize = null;
$(document).ready(function () {
baseUrl = "http://localhost/API/service.svc/GetOrderHistory";
parameters = '{"userId":1 , "page":1 ,"pageSize":4}';
currentPageNumber = 1;
var history = new PurchaseHistory();
history.ajaxCall(parameters);
});
function PurchaseHistory() {
/* On ajax error show error message
-------------------------------------------------*/
this.onAjaxError = function() {
$('#error').text('No internet connection.').css('color', 'red');
}
/* Ajax call
-------------------------------------------------*/
this.ajaxCall = function (parameters) {
$.support.core = true;
$.ajax({
type: "POST",
url: baseUrl,
data: parameters,
//dataType: 'json',
contentType: "application/json; charset=UTF-8",
error: function () { this.onAjaxError() }
}).done(function (data) {
var json = data.GetOrderHistoryResult;
var jsonObject = $.parseJSON(json);
var history = new PurchaseHistory();
history.populateOrderHistory(jsonObject);
TotalPages = jsonObject.PgCnt;
currentPageNumber = jsonObject.CrntPg;
});
}
this.populateOrderHistory = function(results) {
var rowOutput = "";
var his = new PurchaseHistory();
for (var i = 0; i < results.Results.length; i++) {
rowOutput += this.renderCartList(results.Results[i], 1);
}
}
this.renderCartList = function(res, i) {
var container = $('#prototype-listelement>li').clone();
container.find('.order-date').text(res.OdrDate);
container.find('.item-count').text(res.Qty);
container.find('.total').text(res.Amt);
container.find('.order-id').text(res.OdrId);
$('#mainul').append(container).listview('refresh');
}
this.loadNextPage = function () {
parameters = '{"userId":1 , "page":' + currentPageNumber + 1 + ',"pageSize":4}';
this.ajaxCall(parameters);
}
var baseUrl=null;
var参数=null;
var currentPageNumber=null;
var TotalPages=null;
var PageSize=null;
$(文档).ready(函数(){
baseUrl=”http://localhost/API/service.svc/GetOrderHistory";
参数='{“userId”:1,“page”:1,“pageSize”:4}';
currentPageNumber=1;
var history=新的PurchaseHistory();
ajaxCall(参数);
});
函数PurchaseHistory(){
/*关于ajax错误显示错误消息
-------------------------------------------------*/
this.onAjaxError=函数(){
$(“#错误”).text('没有互联网连接').css('颜色','红色');
}
/*Ajax调用
-------------------------------------------------*/
this.ajaxCall=函数(参数){
$.support.core=true;
$.ajax({
类型:“POST”,
url:baseUrl,
数据:参数,
//数据类型:“json”,
contentType:“应用程序/json;字符集=UTF-8”,
错误:函数(){this.onAjaxError()}
}).完成(功能(数据){
var json=data.GetOrderHistoryResult;
var jsonObject=$.parseJSON(json);
var history=新的PurchaseHistory();
历史。populateOrderHistory(jsonObject);
TotalPages=jsonObject.PgCnt;
currentPageNumber=jsonObject.CrntPg;
});
}
this.populateOrderHistory=函数(结果){
var rowOutput=“”;
var his=新购买历史();
对于(var i=0;ili').clone();
container.find(“.order date”).text(res.OdrDate);
container.find('.item count').text(res.Qty);
container.find('.total').text(res.Amt);
container.find('.order id').text(res.OdrId);
$('#mainul').append(container.listview('refresh');
}
this.loadNextPage=函数(){
参数=“{”userId:1,“page”:“+currentPageNumber+1+”,“pageSize:4}”;
此.ajaxCall(参数);
}
}
ajaxCall是在javascript的ready函数上进行的。
这个ajax调用返回带有页面信息的Json对象,包括当前页码、总页数和页面大小
当前,当页面加载时,我能够在UI上显示信息
我的问题:-
我想在按钮单击事件上再次调用ajax方法。
如何做到这一点,以及在哪里存储从以前的ajax调用中获得的信息?对于分页,我将创建一个链接,将更多项目加载到页面上,并保存一个起始编号以传递到数据层。此示例一次加载20个
<a class="more" href="#" data-start="0">show more</a>
$("a.more").click(function(e){
e.preventDefault();
var start = $(this).attr('data-start');
$.get('/more-data, { start: start }, function(d){
var next = start+20;
$("a.more").attr('data-start', next);
//process results here, do something with 'd'
});
});
$(“a.more”)。单击(功能(e){
e、 预防默认值();
var start=$(this.attr('data-start');
$.get('/more data,{start:start},函数(d){
var next=start+20;
$(“a.more”).attr('data-start',next);
//在此处处理结果,使用“d”执行操作
});
});
对于分页,我将创建一个链接,将更多项目加载到页面上,并保存起始编号以传递到数据层。此示例一次加载20个
<a class="more" href="#" data-start="0">show more</a>
$("a.more").click(function(e){
e.preventDefault();
var start = $(this).attr('data-start');
$.get('/more-data, { start: start }, function(d){
var next = start+20;
$("a.more").attr('data-start', next);
//process results here, do something with 'd'
});
});
$(“a.more”)。单击(功能(e){
e、 预防默认值();
var start=$(this.attr('data-start');
$.get('/more data,{start:start},函数(d){
var next=start+20;
$(“a.more”).attr('data-start',next);
//在此处处理结果,使用“d”执行操作
});
});
如果您能在调用函数的地方提供html代码,这将非常有用。您能将其简化为一个小示例吗?如果您能在调用函数的地方提供html代码,这将非常有用。您能将其简化为一个小示例吗?