基于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的内存泄漏
Mar 04 Javascript
javascript tips提示框组件实现代码
Nov 19 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
Jun 07 Javascript
JS+CSS实现简易实用的滑动门菜单效果
Sep 18 Javascript
深入浅析javascript立即执行函数
Oct 23 Javascript
Javascript的表单验证-初识正则表达式
Mar 18 Javascript
jQuery simpleModal插件的使用介绍
Aug 30 Javascript
jQuery中each方法的使用详解
Mar 18 jQuery
vue devtools的安装与使用教程
Aug 08 Javascript
微信小程序之数据绑定原理解析
Aug 14 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 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调用三种数据库的方法(3)
2006/10/09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
PDO::setAttribute讲解
2019/01/29 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
JS表的模拟方法
2015/02/05 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
Python分治法定义与应用实例详解
2017/07/28 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
外包公司软件测试工程师
2014/11/01 面试题
小区推广策划方案
2014/06/06 职场文书
司机岗位职责
2015/02/04 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
Python字符串常规操作小结
2022/04/03 Python
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers