基于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游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
Jan 23 Javascript
jQuery cdn使用介绍
May 08 Javascript
给事件响应函数传参数的四种方式小结
Dec 05 Javascript
jquery中$each()方法的使用指南
Apr 30 Javascript
jquery实现用户信息修改验证输入方法汇总
Jul 18 Javascript
jQuery Easyui 下拉树组件combotree
Dec 16 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
Jan 08 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
小程序实现投票进度条
Nov 20 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
Apr 22 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 Javascript
vue+elementui 实现新增和修改共用一个弹框的完整代码
Jun 08 Vue.js
浅谈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数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
smarty表格换行实例
2014/12/15 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
Mac安装python3的方法步骤
2019/08/09 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
测控技术与仪器个人求职信范文
2013/12/30 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
离婚协议书范本样本
2014/08/19 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
财务管理制度范本
2015/08/04 职场文书
自考生自我评价
2019/06/21 职场文书
redis实现排行榜功能
2021/05/24 Redis
MongoDB支持的数据类型
2022/04/11 MongoDB