基于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 相关文章推荐
基于jquery实现的表格分页实现代码
Jun 21 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
Nov 22 Javascript
Node.js中的process.nextTick使用实例
Jun 25 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
jqGrid用法汇总(全经典)
Jun 28 Javascript
浅谈JS使用[ ]来访问对象属性
Sep 21 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
Jan 31 Javascript
微信小程序制作表格的方法
Feb 14 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
Aug 20 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创建桌面快捷方式的实例代码
2014/02/17 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
美国最大的团购网站:Groupon
2016/07/23 全球购物
数学国培研修感言
2014/02/13 职场文书
个人授权委托书
2014/04/03 职场文书
会计演讲稿范文
2014/05/23 职场文书
高中生旷课检讨书
2014/10/08 职场文书
刘胡兰观后感
2015/06/16 职场文书
遗嘱格式范本
2015/08/07 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB