亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

根據Bootstrap Paginator改寫的js分頁插件

2019-11-19 18:17:05
字體:
來源:轉載
供稿:網友

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

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

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

首先,插件有調節大小、調節浮動位置的功能,但是我用的是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">跳轉</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;}

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

好了,說說怎么調用吧。

屬性 默認值 說明
containerClass string,默認值為:'' 為最外層div增加自定義樣式
itemContainerClass string|function,默認值為:null 為li標簽增加自定義樣式
itemContentClass string|function,默認值為:null 為a標簽添加自定義樣式
currentPage Number,默認值為:1 定義插件初始化后顯示的頁
ShowPagesNum Number,默認值為:5 定義插件顯示的按鈕數量(不包括首頁、末頁、上一頁、下一頁等按鈕)
totalPages Number,默認值為:1 定義插件總頁數
pageUrl string|function,默認值為:null 為a標簽加上href屬性
onPageClicked string|function,默認值為:null

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

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

的頁碼

onPageChanged string|function,默認值為:null

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

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

的頁碼

useBootstrapTooltip boolean,默認值為:false 是否使用bootstrap的提示框插件
shouldShowPage function,默認值為:true

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

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

的頁碼

itemTexts function

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

三個參數:type, page, current

tooltipTitles function

修改頁碼元素的title屬性,默認有一個簡單的實現,

三個參數:type, page, current

bootstrapTooltipOptions object

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

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

下面怎么調用呢?給一個html的實例吧。

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

<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>

寫一個簡單的調用腳本。

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

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

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

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

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變量,從控制器中傳到視圖層,強轉之后把PagerFun變量賦給了插件的onPageClicked屬性,插件內部識別它是一個函數就調用了,例子中PagerFun的值為"test",效果是單擊哪個按鈕就彈出按鈕代表的頁碼。

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

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕精品国产| 成人亚洲欧美一区二区三区| 精品夜色国产国偷在线| 欧美国产日韩中文字幕在线| 色久欧美在线视频观看| 深夜精品寂寞黄网站在线观看| 日韩中文有码在线视频| 亚洲成人三级在线| 中文字幕一区日韩电影| 欧美色videos| 国产精品丝袜一区二区三区| 国产精品吊钟奶在线| 国产有码一区二区| 成人a级免费视频| 欧美日韩国产精品一区二区三区四区| 一区二区欧美在线| 国产成人精品久久久| 深夜福利国产精品| 久久影视电视剧免费网站清宫辞电视| 亚洲成人精品视频| 在线日韩av观看| 一本色道久久综合亚洲精品小说| 亚洲美女自拍视频| 欧美激情极品视频| 国产日韩精品入口| 久热精品视频在线观看一区| 亚洲国产成人在线播放| 日韩欧美高清在线视频| 亚洲福利精品在线| 91精品国产免费久久久久久| 亚洲一级免费视频| 欧美大学生性色视频| 青青草原一区二区| 8x拔播拔播x8国产精品| 亚洲第一免费网站| 欧美视频精品一区| 亚洲精品一区二区久| 欧美大片在线看免费观看| 国产精品久久久av久久久| 亚洲人成在线观看网站高清| 国产精品视频自拍| 久久99视频免费| 欧美疯狂性受xxxxx另类| 亚洲精品国产美女| 日本中文字幕成人| 日韩av在线最新| 亚洲春色另类小说| 亚洲国产精品高清久久久| 91精品国产自产在线观看永久| 91大神福利视频在线| 91成人免费观看网站| wwwwwwww亚洲| 亚洲欧美在线第一页| 亚洲免费福利视频| 亚洲色在线视频| 亚洲自拍偷拍色图| 亚洲国产成人精品一区二区| 麻豆成人在线看| 久久人体大胆视频| 国产精品99久久久久久久久久久久| 国产亚洲视频中文字幕视频| 久久99国产精品自在自在app| 日韩欧美国产视频| 日本亚洲欧美三级| 亚洲91av视频| 亚洲成人网久久久| 亚洲国产精品网站| 亚洲免费福利视频| 亚洲色图综合久久| 日韩高清av一区二区三区| 日韩a**中文字幕| 亚洲欧美在线免费| 亚洲男女自偷自拍图片另类| 国产精品国产自产拍高清av水多| 国产精品中文字幕在线| 色婷婷综合久久久久| 国产精品久久久久久久久久久久| 日韩少妇与小伙激情| 91高清视频在线免费观看| 国产精欧美一区二区三区| 国产91精品网站| 欧美日本黄视频| 精品久久中文字幕久久av| 97在线免费观看视频| 欧美在线观看网址综合| 亚洲最新中文字幕| 日韩高清不卡av| 国产精品免费视频xxxx| 欧美日韩一区二区精品| 欧美激情久久久久久| 欧美日韩在线视频观看| 久久久久久久久久久久av| 日韩精品在线观| 精品国内亚洲在观看18黄| 日韩中文理论片| 中文字幕成人精品久久不卡| 欧美大尺度在线观看| 欧美在线视频观看免费网站| 久久av红桃一区二区小说| 一本一本久久a久久精品牛牛影视| 成人啪啪免费看| 欧美视频二区36p| 欧美专区国产专区| 国产欧美欧洲在线观看| 亚洲人成在线观看网站高清| 国产精品久久久久999| 亚洲第一区中文99精品| 最近日韩中文字幕中文| 亚洲区免费影片| 欧美日韩999| 韩国v欧美v日本v亚洲| 黄色一区二区在线观看| 亚洲人成网7777777国产| 国产一区二区三区在线视频| 欧美日韩性生活视频| 欧美色xxxx| 97香蕉久久超级碰碰高清版| 亚洲欧洲美洲在线综合| 欧美理论电影在线观看| 亚洲欧美在线一区二区| 日韩亚洲精品视频| 亚洲tv在线观看| 久久亚洲综合国产精品99麻豆精品福利| 欧美裸体xxxx极品少妇| 久久久久久999| 国产精品久久久久久久午夜| 国产91九色视频| 亚洲精品美女久久久久| 自拍偷拍免费精品| 91超碰caoporn97人人| 97视频国产在线| 国产婷婷成人久久av免费高清| 91av在线视频观看| 国产精品直播网红| 日韩成人中文字幕| 久久偷看各类女兵18女厕嘘嘘| 亚洲丝袜在线视频| 日韩中文字幕网| 欧美一区二区视频97| 视频一区视频二区国产精品| 国产一区二中文字幕在线看| 国产精品看片资源| 欧美亚洲在线观看| 精品调教chinesegay| 91精品视频网站| 尤物yw午夜国产精品视频明星| 亚洲视频一区二区| 欧美黄色小视频| 911国产网站尤物在线观看| 久久视频在线看| 欧美激情一区二区三区在线视频观看| 精品久久久999| 日韩精品中文字| 亚洲欧美自拍一区| 亚洲网站视频福利| 国产精品美腿一区在线看| 亚洲精品久久久久久久久久久| 久久精品亚洲热| 在线精品高清中文字幕| 日韩精品中文在线观看| 69**夜色精品国产69乱| 中文字幕一区二区精品| 狠狠爱在线视频一区| 午夜精品久久久久久久久久久久|