基于KO+BootStrap+MVC實(shí)現(xiàn)的分頁(yè)控件代碼分享
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>身份證號(hào)</th> <th>入黨時(shí)間</th> <th>工作時(shí)間</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()+'條數(shù)據(jù)'" /> </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實(shí)現(xiàn)的分頁(yè)控件代碼分享,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
原生javascript如何實(shí)現(xiàn)共享onload事件
這篇文章主要介紹了原生javascript如何實(shí)現(xiàn)共享onload事件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
JavaScript中為什么null==0為false而null大于=0為true(個(gè)人研究)
今天閑來沒啥事,研究了一下有關(guān)“null”和“0”的關(guān)系。希望大家看完了能有所收獲,在此與大家分享下,希望也可以受益匪淺2013-09-09
javascript IFrame 強(qiáng)制刷新代碼
經(jīng)常會(huì)使用多個(gè)iframe來展示領(lǐng)域模型主子關(guān)系(主/子單),測(cè)試發(fā)現(xiàn)iframe是有cache功能的2009-07-07
javascript 簡(jiǎn)單高效判斷數(shù)據(jù)類型 系列函數(shù) By shawl.qiu
javascript 簡(jiǎn)單高效判斷數(shù)據(jù)類型 系列函數(shù) By shawl.qiu...2007-03-03
ajax java 實(shí)現(xiàn)自動(dòng)完成功能
都知道百度建議是用ajax做的,想要做的快速穩(wěn)定,可復(fù)制可移植就不容易了,花時(shí)間研究還不如自己來寫。根據(jù)一個(gè)pdf文檔提供的資料,用了小半天時(shí)間,終于實(shí)現(xiàn)了。在此與大家分享2012-12-12
js實(shí)現(xiàn)簡(jiǎn)單的手風(fēng)琴效果
本文主要介紹了js實(shí)現(xiàn)簡(jiǎn)單手風(fēng)琴效果的實(shí)例,具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
JS實(shí)現(xiàn)靈巧的下拉導(dǎo)航效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)靈巧的下拉導(dǎo)航效果代碼,通過自定義js插件腳本dropdown.js實(shí)現(xiàn)簡(jiǎn)單的下拉導(dǎo)航效果的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
JavaScript彈簧振子超簡(jiǎn)潔版 完全符合能量守恒,胡克定理
完全符合能量守恒,胡克定理的JavaScript彈簧振子(超簡(jiǎn)潔版,超越第一版!)2009-10-10

