knockoutjs ajax分页,knockout js实现分页列表

​时隔多年,今日说下刚搞的这个mvvw模式开发的js

js获取后台数据——>保存在js模型中——>渲染到html标签

举例:

$(document).ready(function () {

function AppViewModel()

{

var self = this,pagerCount =

8;

self.resultData =

ko.observable([]); // No initial value

self.total =

ko.observable('');

self.totalpage =

ko.observable('');

self.page =

ko.observable('');

self.pagesize =

ko.observable('');

self.pages =

ko.observable([]);

self.showStartPagerDot =

ko.observable(false);//页面开始部分是否显示点号

self.showEndPagerDot =

ko.observable(false);//页面结束部分是否显示点号

self.getData =

function(){

$('#list').show();

self.jumppage(1);

};

//首页

self.getFirst =

function(){

self.jumppage(1);

};

//下一页

self.getNext = function(){var

cur = self.page(); if (cur < self.totalpage()) {

self.jumppage(parseInt(cur)+1); };};

//上一页

self.getPre = function(){var

cur = self.page(); if (cur > 1) {

self.jumppage(parseInt(cur) - 1); };};

//末页

self.getLast =

function(){self.jumppage(self.totalpage());};

self.jumppage =

function(page){

self.selectsub(page);

};

self.caculatePages = function

() {

var result = [], start = 1, end =

pagerCount;

if (self.page() >= pagerCount)

{

start = self.page() - Math.floor(pagerCount /

2);

self.showStartPagerDot(true);

} else {

self.showStartPagerDot(false);

};

end = start + pagerCount -

1;

if (end > self.totalpage())

{

end =

self.totalpage();

self.showEndPagerDot(false);

} else {

self.showEndPagerDot(true);

};

for (var i = start; i <= end;

i++) {

result.push(i);

};

self.pages(result);

};

self.selectsub  =

function(page){

$("#searchform").ajaxSubmit({

data:{page:page},

success: function (oProdsData, status)

{

var json = eval_r("(" + oProdsData +

")");

var trs =

json.data.list;

if(json.status == 200 && trs.length

> 0){

self.total(json.data.total);

self.totalpage(json.data.totalPage);

self.page(json.data.page);

self.pagesize(json.data.epage);

self.caculatePages();

for($i =

0;$i

trs[$i]['listtableClass'] =

$i % 2 ? false : true;

if($i==(trs.length-1))

{

trs[$i]['islastPageData'] = true;

}

else{trs[$i]['islastPageData'] = false;}

}

self.resultData(trs);

}else{

self.total(0);

}

return false;

},

error : function(XMLResponse)

{

alert('哥~~,请不要这样神操作,请求过于频繁!!');

}

});

return false;

};

$('#list').show();

self.jumppage(1);

}

//对应vmProd的对象及合

ko.applyBindings(new AppViewModel());

});

​html如下:

填写图片摘要(选填)

a4c26d1e5885305701be709a3d33442f.png

​​

​例子中的数据根据个人需要来拟定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值