欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

根據(jù)Bootstrap Paginator改寫的js分頁插件

 更新時間:2016年12月25日 08:59:52   作者:TIEDPAG  
本文主要對根據(jù)Bootstrap Paginator改寫的js插件進(jìn)行詳細(xì)介紹,具有很好的參考價值,需要的朋友一起來看下吧

剛剛出來實習(xí),之前實習(xí)的公司有一個分頁插件,和后端的數(shù)據(jù)字典約定好了的,基本上是看不到內(nèi)部是怎么實現(xiàn)的,新公司是做WPF的,好像對于ASP.NET的東西不多,導(dǎo)師扔了一個小系統(tǒng)給我和另一個同事,指了兩種框架的方案就讓我們自己做了。。。

剛開始在網(wǎng)上找了一下,覺得bootstrap-paginator的api暴露出來,修改一下就可以做成之前實習(xí)公司的那種了,但是覺得沒有跳轉(zhuǎn),很奇怪,想要一個,就動手在github上把源碼拿下來了,不得不說,這代碼寫得真是比我這些實習(xí)碼農(nóng)好太多。(之前實習(xí)公司的組長臨走之前給了我?guī)讉€意見,其中就有讓我多上全球最大的男性/交友社區(qū)github多去看看  - - )這里給一下地址吧。bootstrap-paginator下載地址

看了一些網(wǎng)上對于bootstrap-paginator插件的使用教程,對于使用起來還是沒太大問題的,自己在改代碼的時候發(fā)現(xiàn)都不太全。

首先,插件有調(diào)節(jié)大小、調(diào)節(jié)浮動位置的功能,但是我用的是bootstrap3,在bootstrap3中這些特性都不支持。。

后來,我就找了一下別的樣式(前端無能,十分佩服前端大牛,硬是能把頁面組織起來),效果大概就是:

給一下這個html代碼吧。

<div id="pager" class="ui-paging-container">
 <ul>
 <li class="ui-pager ui-pager-disabled" data-original-title="" title="">
 <a><<</a>
 </li>
 <li class="ui-pager ui-pager-disabled" data-original-title="" title="">
 <a><</a>
 </li>
 <li class="ui-pager focus" data-original-title="" title="">
 <a>1</a>
 </li>
 <li class="ui-pager" data-original-title="" title="">
 <a>2</a>
 </li>
 <li class="ui-pager" data-original-title="" title="">
 <a>3</a>
 </li>
 <li class="ui-pager" data-original-title="" title="">
 <a>4</a>
 </li>
 <li class="ui-pager" data-original-title="" title="">
 <a>5</a>
 </li>
 <li class="ui-paging-ellipse" data-original-title="" title="">...</li>
 <li class="ui-pager" data-original-title="" title="">
 <a>10</a>
 </li>
 <li class="ui-pager" data-original-title="" title="">
 <a>></a>
 </li>
 <li class="ui-pager" data-original-title="" title="">
 <a>>></a>
 </li>
 <li class="ui-paging-toolbar" data-original-title="" title="">
 <input class="ui-paging-count" type="text" id="txt_turn">
 <a href="javascript:void(0)" id="btn_turn">跳轉(zhuǎn)</a>
 </li>
 </ul>
</div>

樣式代碼很簡單,如果有人想用的話,可以修改一下我的樣式代碼。。真的好像不怎么好看。

.ui-paging-container {color: #666; font-size: 15px;}
.ui-paging-container ul {overflow: hidden; text-align: center;}
.ui-paging-container ul, .ui-paging-container li {list-style: none;}
.ui-paging-container li {display: inline-block;padding: 3px 6px;margin-left: 5px;color: #666;}
.ui-paging-container li a {color: #666; text-decoration: none; }
.ui-paging-container li.ui-pager {cursor: pointer;border: 1px solid #ddd;border-radius: 2px;}
.ui-paging-container li.ui-pager:hover, .ui-paging-container li.focus { background-color: #288df0;color: #FFFFFF;}
.ui-paging-container li.ui-paging-ellipse {border: none;}
.ui-paging-container li.ui-paging-toolbar {padding: 0;}
.ui-paging-container li.ui-paging-toolbar select {height: 25px;border: 1px solid #ddd;color: #666;}
.ui-paging-container li.ui-paging-toolbar input {line-height: 20px;height: 23px;padding: 0;border: 1px solid #ddd;text-align: center;width: 33px;margin: 0 0 0 5px;vertical-align: middle;}
.ui-paging-container li.ui-paging-toolbar a {vertical-align: middle; text-decoration: none;display: inline-block;height: 23px;border: 1px solid #ddd;vertical-align: top;border-radius: 2px;line-height: 20px;padding: 0 3px;cursor: pointer;margin-left: 5px;color: #666;}
.ui-paging-container li.ui-pager-disabled, .ui-paging-container li.ui-pager-disabled:hover {background-color: #f6f6f6;cursor: not-allowed;border: none;color: #ddd;}
.ui-paging-container li.ui-pager-disabled a { color: #ddd;text-decoration: none;}

看了樣式的人應(yīng)該發(fā)現(xiàn)了吧,原本是有一個選擇框的,被我刪了,選擇框是用來控制頁面顯示信息的條數(shù),因為這個控制目前不需要前端有,所以我取消了。

好了,說說怎么調(diào)用吧。

屬性默認(rèn)值說明
containerClassstring,默認(rèn)值為:''為最外層div增加自定義樣式
itemContainerClassstring|function,默認(rèn)值為:null為li標(biāo)簽增加自定義樣式
itemContentClassstring|function,默認(rèn)值為:null為a標(biāo)簽添加自定義樣式
currentPageNumber,默認(rèn)值為:1定義插件初始化后顯示的頁
ShowPagesNumNumber,默認(rèn)值為:5定義插件顯示的按鈕數(shù)量(不包括首頁、末頁、上一頁、下一頁等按鈕)
totalPagesNumber,默認(rèn)值為:1定義插件總頁數(shù)
pageUrlstring|function,默認(rèn)值為:null為a標(biāo)簽加上href屬性
onPageClickedstring|function,默認(rèn)值為:null

函數(shù)四個參數(shù):even、originalEvent、type、 page,type的值為:first|prev|next|last|

page|turn|ellipsis,page的值為單擊按鈕時跳轉(zhuǎn)的頁碼,current是跳轉(zhuǎn)前

的頁碼

onPageChangedstring|function,默認(rèn)值為:null

函數(shù)四個參數(shù):even、originalEvent、type、 page,type的值為:first|prev|next|last|

page|turn|ellipsis,page的值為單擊按鈕時跳轉(zhuǎn)的頁碼,current是跳轉(zhuǎn)前

的頁碼

useBootstrapTooltipboolean,默認(rèn)值為:false是否使用bootstrap的提示框插件
shouldShowPagefunction,默認(rèn)值為:true

函數(shù)三個參數(shù):type, page, current,type的值為:first|prev|next|last|

page|turn|ellipsis,page的值為單擊按鈕時跳轉(zhuǎn)的頁碼,current是跳轉(zhuǎn)前

的頁碼

itemTextsfunction

可以修改頁碼的顯示,如把type為first的文字改成'首頁'

三個參數(shù):type, page, current

tooltipTitlesfunction

修改頁碼元素的title屬性,默認(rèn)有一個簡單的實現(xiàn),

三個參數(shù):type, page, current

bootstrapTooltipOptionsobject

這個是把title注入到bootstrap的tooltip插件的模板

大部分都還是保持和bootstrap-paginator插件的屬性。

下面怎么調(diào)用呢?給一個html的實例吧。

首先把定義的樣式拿進(jìn)來,就是上面那個,存一個文件,引入(也可以和你自己的css文件放在一起,可以減少http請求次數(shù))。

<link href="~/Content/css/style.css" rel="stylesheet" />

這些都是基于jquery的插件,并且要1.8以上的版本。

<script src="~/Scripts/jquery-1.10.2.js"></script>

接下來就是引用我們最重要的js文件了。

<script src="~/Scripts/mypager.js"></script>

html中放一個div,這個div就是接下來要生成分頁控件的父元素。記住一定是要div,bootstrap-paginator中bootstrap2是用div,bootstrap3是用ul。這里因為我們自己寫的樣式,就被我改成了必須是div。

<div id="pager"></div>

寫一個簡單的調(diào)用腳本。

var option = {
 currentPage: 1,
 totalPages: 10,
 ShowPagesNum: 5
 };
$('#pager').myPager(option);

HTML里的調(diào)用就到這里了。我用的是ASP.NET MVC,所以直接用Razor引擎把ViewData或者ViewBag的數(shù)據(jù)裝載進(jìn)js里就好了。當(dāng)然,既然打算這樣用了,最好在后端直接寫一個類,我給個例子。

public class Pager
 {
 /// <summary>
 /// 當(dāng)前頁碼
 /// </summary>
 public int PageIndex { get; set; }
 /// <summary>
 /// 總頁數(shù)
 /// </summary>
 public int TotalPages { get; set; }
 /// <summary>
 /// 每頁展示信息數(shù)
 /// </summary>
 public int PageSize { get; set; }
 /// <summary>
 /// 前端分頁調(diào)用的js方法名
 /// </summary>
 public string PagerFun { get; set; }
 public Pager()
 {
 
 }
 public Pager(string pager)
 {
  PagerFun = pager;
 }
 }

前面幾個屬性都好理解,那個PagerFun是什么呢?在插件的屬性中,有幾個函數(shù),比如:pageUrl、onPageClicked等,后端如果想在不同分頁里調(diào)用不同分頁按鈕點擊事件,只需要把對應(yīng)的js函數(shù)名在Razor引擎中放進(jìn)插件聲明時的參數(shù)就好了。這里給個例子吧。

C# MVC控制器:

public ActionResult Index()
{
 Pager pager = new Pager("test");
 pager.PageIndex = 1;
 pager.PageSize = 10;
 pager.TotalPages = 10;
 return View(pager);
}

ps:這里使用了剛剛上面那個Pager類。

CSHTML:

@{
 Layout = null;
 var pager = Model as WebApplication4.Models.Pager;
}
<!DOCTYPE html>
<html>
<head>
 <meta name="viewport" content="width=device-width" />
 <link href="~/Content/css/style.css" rel="stylesheet" />
 <script src="~/Scripts/jquery-1.10.2.js"></script>
 <title>Index</title>
</head>
<body>
 <div id="pager">
 </div>
 <script src="~/Scripts/mypager.js"></script>
 <script>
 var test = function (even,originalEvent,type, page) {
  alert(page);
 };
 var option = {
  currentPage: @pager.PageIndex,
  totalPages: @pager.TotalPages,
  ShowPagesNum: 5,
  onPageClicked:@(pager.PagerFun)
  };
 $('#pager').myPager(option);
 </script>
</body>
</html>

主要是onPageClicked:@(pager.PagerFun)這一句,在Razor引擎頂部我們聲明了pager變量,從控制器中傳到視圖層,強(qiáng)轉(zhuǎn)之后把PagerFun變量賦給了插件的onPageClicked屬性,插件內(nèi)部識別它是一個函數(shù)就調(diào)用了,例子中PagerFun的值為"test",效果是單擊哪個按鈕就彈出按鈕代表的頁碼。

這只是其中一個函數(shù),onPageChanged等都是可以的。第一次寫,自己的js功底也并不是很深,借著bootstrap-paginator作者的源碼學(xué)習(xí)了很多,代碼也寫得很優(yōu)美!

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

最新評論