基于KO+BootStrap+MVC实现的分页控件代码分享


Posted in Javascript onNovember 07, 2016

JS:

/// <reference path="../knockout-3.2.0.js" />
var ViewModel = function (data) {
var self = this;
self.ObjectList = ko.observableArray(data.ObjectList)
self.TotalCount = ko.observable(data.TotalCount);
self.PerCount = ko.observable(data.PerCount);
self.pageIndex = ko.observable(data.Index);
self.btns = ko.observableArray();
var getData = function (wantIndex) {
$.getJSON("/BaseInfor/GetList",
{
pageIndex: wantIndex, pageSize: self.PerCount()
},
function (data) {
self.ObjectList(data.ObjectList);
self.TotalCount(data.TotalCount);
self.PerCount(data.PerCount);
self.pageIndex(data.Index);
});
}
self.btnClick = function (item) {
getData(item);
}
self.perPageClick = function () {
var wantIndex = self.pageIndex() - 1;
if (wantIndex <= 0) return;
getData(wantIndex);
}
self.nextPageClick = function () {
var wantIndex = self.pageIndex() + 1;
if (wantIndex - 1 > (self.TotalCount() / self.PerCount())) return;
getData(wantIndex);
}
self.firstPageClick = function () {
getData(1);
}
self.lastPageClick = function () {
getData(self.pageTotal());
}
ko.computed(function () {
self.pageTotal = ko.observable(Math.ceil((self.TotalCount() / self.PerCount())))
var pageCount = self.pageTotal();
var start = (self.pageIndex() - 5) > 0 ? self.pageIndex() - 5 : 0;
var end = (start + 9) < pageCount ? start + 9 : pageCount;
if (end == pageCount)
{ var start = (pageCount - 9) > 0 ? pageCount - 9 : 0;; }
self.btns.removeAll();
for (var i = start; i < end; i++) {
self.btns.push(ko.mapping.fromJS(i + 1));
}
});
}
$(document).ready(function () {
$.getJSON("/BaseInfor/GetList",
{
pageIndex: 1, pageSize: 5
},
function (data) {
ko.applyBindings(new ViewModel(data));
});
});

HTML:

<table class="table table - striped">
<thead>
<tr>
<th>姓名</th>
<th>性别</th>
<th>出生年月</th>
<th>年龄</th>
<th>民族</th>
<th>身份证号</th>
<th>入党时间</th>
<th>工作时间</th>
<th>籍贯</th>
<th>出生地</th>
<th>证件照</th>
</tr>
</thead>
<tbody>
<!-- ko foreach: ObjectList -->
<tr>
<td data-bind="text:Name"></td>
<td data-bind="text:Gender"></td>
<td data-bind="text:BirthDate"></td>
<td data-bind="text:Age"></td>
<td data-bind="text:Nation"></td>
<td data-bind="text:IDNumber"></td>
<td data-bind="text:PartyTime"></td>
<td data-bind="text:WorkTime"></td>
<td data-bind="text:hail"></td>
<td data-bind="text:BirthAddress"></td>
<td data-bind="text:Photo"></td>
</tr>
<!-- /ko -->
</tbody>
</table>
<div class="btn-toolbar" role="toolbar">
<div class="btn-group">
<input class="btn btn-success" type="button" value="<" data-bind="click:perPageClick" />
</div>
<div class="btn-group">
<input class="btn btn-success" type="button" data-bind="value:'1',click:firstPageClick" />
</div>
<div class="btn-group">
<!-- ko foreach: btns -->
<!-- ko if: $data==$parent.pageIndex() -->
<button class="btn btn-success" type="button" data-bind="text:$data,click:$parent.btnClick"></button>
<!-- /ko -->
<!-- ko ifnot: $data==$parent.pageIndex() -->
<button class="btn btn-default" type="button" data-bind="text:$data,click:$parent.btnClick"></button>
<!-- /ko -->
<!-- /ko -->
</div>
<div class="btn-group">
<input class="btn btn-success" type="button" data-bind="value:pageTotal,click:lastPageClick" />
</div>
<div class="btn-group">
<input class="btn btn-success" type="button" value=">" data-bind="click:nextPageClick" />
</div>
<div class="btn-group">
<span data-bind="text:TotalCount()+'条数据'" />
</div>
</div>
<script src="/Scripts/jquery-2.1.1.min.js"></script>
<script src="/Scripts/knockout-3.2.0.js"></script>
<script src="/Scripts/knockout.mapping.js"></script>
<script src="/Content/Plus/bootstrap-3.2.0-dist/js/bootstrap.min.js"></script>
<link href="/Content/Plus/bootstrap-3.2.0-dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="/Scripts/BaseInfor/List.js"></script>

以上所述是小编给大家介绍的基于KO+BootStrap+MVC实现的分页控件代码分享,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
解析javascript系统错误:-1072896658的解决办法
Jul 08 Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
Oct 22 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
Nov 16 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
vue 引用自定义ttf、otf、在线字体的方法
May 09 Javascript
JS实现TITLE悬停长久显示效果完整示例
Feb 11 Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
Nov 07 #Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
Nov 07 #Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 #Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 #Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 #Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 #Javascript
easyui form validate总是返回false的原因及解决方法
Nov 07 #Javascript
You might like
利用php绘制饼状图的实现代码
2013/06/07 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
python五子棋游戏的设计与实现
2019/06/18 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
更夫岗位责任制
2014/02/11 职场文书
希特勒的演讲稿
2014/05/23 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
如何在Python中妥善使用进度条详解
2022/04/05 Python