基于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 相关文章推荐
5 cool javascript apps
Mar 24 Javascript
javascript脚本编程解决考试分数统计问题
Oct 18 Javascript
js实现广告漂浮效果的小例子
Jul 02 Javascript
JS获取鼠标坐标的实例方法
Jul 18 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
JavaScript实现简单的二级导航菜单实例
Apr 15 Javascript
jquery实现选中单选按钮下拉伸缩效果
Aug 06 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 Javascript
js学习总结_选项卡封装(实例讲解)
Jul 13 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 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中使用Oracle数据库(4)
2006/10/09 PHP
php使用codebase生成随机数
2014/03/25 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Python数据集切分实例
2018/12/08 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
COSETTE官网:奢华,每天
2020/03/22 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
什么是Web Service?
2012/07/25 面试题
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
追讨欠款律师函
2015/05/27 职场文书
教师节晚会主持词
2015/06/30 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
详解非极大值抑制算法之Python实现
2021/06/28 Python
Nginx实现会话保持的两种方式
2022/03/18 Servers
HDFS免重启挂载新磁盘
2022/04/06 Servers