jquery.pagination.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. /**
  2. * EasyUI for jQuery 1.9.4
  3. *
  4. * Copyright (c) 2009-2020 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. var _3=$.data(_2,"pagination");
  13. var _4=_3.options;
  14. var bb=_3.bb={};
  15. if(_4.buttons&&!$.isArray(_4.buttons)){
  16. $(_4.buttons).insertAfter(_2);
  17. }
  18. var _5=$(_2).addClass("pagination").html("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr></tr></table>");
  19. var tr=_5.find("tr");
  20. var aa=$.extend([],_4.layout);
  21. if(!_4.showPageList){
  22. _6(aa,"list");
  23. }
  24. if(!_4.showPageInfo){
  25. _6(aa,"info");
  26. }
  27. if(!_4.showRefresh){
  28. _6(aa,"refresh");
  29. }
  30. if(aa[0]=="sep"){
  31. aa.shift();
  32. }
  33. if(aa[aa.length-1]=="sep"){
  34. aa.pop();
  35. }
  36. for(var _7=0;_7<aa.length;_7++){
  37. var _8=aa[_7];
  38. if(_8=="list"){
  39. var ps=$("<select class=\"pagination-page-list\"></select>");
  40. ps._bind("change",function(){
  41. _4.pageSize=parseInt($(this).val());
  42. _4.onChangePageSize.call(_2,_4.pageSize);
  43. _10(_2,_4.pageNumber);
  44. });
  45. for(var i=0;i<_4.pageList.length;i++){
  46. $("<option></option>").text(_4.pageList[i]).appendTo(ps);
  47. }
  48. $("<td></td>").append(ps).appendTo(tr);
  49. }else{
  50. if(_8=="sep"){
  51. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  52. }else{
  53. if(_8=="first"){
  54. bb.first=_9("first");
  55. }else{
  56. if(_8=="prev"){
  57. bb.prev=_9("prev");
  58. }else{
  59. if(_8=="next"){
  60. bb.next=_9("next");
  61. }else{
  62. if(_8=="last"){
  63. bb.last=_9("last");
  64. }else{
  65. if(_8=="manual"){
  66. $("<span style=\"padding-left:6px;\"></span>").html(_4.beforePageText).appendTo(tr).wrap("<td></td>");
  67. bb.num=$("<input class=\"pagination-num\" type=\"text\" value=\"1\" size=\"2\">").appendTo(tr).wrap("<td></td>");
  68. bb.num._unbind(".pagination")._bind("keydown.pagination",function(e){
  69. if(e.keyCode==13){
  70. var _a=parseInt($(this).val())||1;
  71. _10(_2,_a);
  72. return false;
  73. }
  74. });
  75. bb.after=$("<span style=\"padding-right:6px;\"></span>").appendTo(tr).wrap("<td></td>");
  76. }else{
  77. if(_8=="refresh"){
  78. bb.refresh=_9("refresh");
  79. }else{
  80. if(_8=="links"){
  81. $("<td class=\"pagination-links\"></td>").appendTo(tr);
  82. }else{
  83. if(_8=="info"){
  84. if(_7==aa.length-1){
  85. $("<div class=\"pagination-info\"></div>").appendTo(_5);
  86. }else{
  87. $("<td><div class=\"pagination-info\"></div></td>").appendTo(tr);
  88. }
  89. }
  90. }
  91. }
  92. }
  93. }
  94. }
  95. }
  96. }
  97. }
  98. }
  99. }
  100. if(_4.buttons){
  101. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  102. if($.isArray(_4.buttons)){
  103. for(var i=0;i<_4.buttons.length;i++){
  104. var _b=_4.buttons[i];
  105. if(_b=="-"){
  106. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  107. }else{
  108. var td=$("<td></td>").appendTo(tr);
  109. var a=$("<a href=\"javascript:;\"></a>").appendTo(td);
  110. a[0].onclick=eval(_b.handler||function(){
  111. });
  112. a.linkbutton($.extend({},_b,{plain:true}));
  113. }
  114. }
  115. }else{
  116. var td=$("<td></td>").appendTo(tr);
  117. $(_4.buttons).appendTo(td).show();
  118. }
  119. }
  120. $("<div style=\"clear:both;\"></div>").appendTo(_5);
  121. function _9(_c){
  122. var _d=_4.nav[_c];
  123. var a=$("<a href=\"javascript:;\"></a>").appendTo(tr);
  124. a.wrap("<td></td>");
  125. a.linkbutton({iconCls:_d.iconCls,plain:true})._unbind(".pagination")._bind("click.pagination",function(){
  126. _d.handler.call(_2);
  127. });
  128. return a;
  129. };
  130. function _6(aa,_e){
  131. var _f=$.inArray(_e,aa);
  132. if(_f>=0){
  133. aa.splice(_f,1);
  134. }
  135. return aa;
  136. };
  137. };
  138. function _10(_11,_12){
  139. var _13=$.data(_11,"pagination").options;
  140. if(_13.onBeforeSelectPage.call(_11,_12,_13.pageSize)==false){
  141. _14(_11);
  142. return;
  143. }
  144. _14(_11,{pageNumber:_12});
  145. _13.onSelectPage.call(_11,_13.pageNumber,_13.pageSize);
  146. };
  147. function _14(_15,_16){
  148. var _17=$.data(_15,"pagination");
  149. var _18=_17.options;
  150. var bb=_17.bb;
  151. $.extend(_18,_16||{});
  152. var ps=$(_15).find("select.pagination-page-list");
  153. if(ps.length){
  154. ps.val(_18.pageSize+"");
  155. _18.pageSize=parseInt(ps.val());
  156. }
  157. var _19=Math.ceil(_18.total/_18.pageSize)||1;
  158. if(_18.pageNumber<1){
  159. _18.pageNumber=1;
  160. }
  161. if(_18.pageNumber>_19){
  162. _18.pageNumber=_19;
  163. }
  164. if(_18.total==0){
  165. _18.pageNumber=0;
  166. _19=0;
  167. }
  168. if(bb.num){
  169. bb.num.val(_18.pageNumber);
  170. }
  171. if(bb.after){
  172. bb.after.html(_18.afterPageText.replace(/{pages}/,_19));
  173. }
  174. var td=$(_15).find("td.pagination-links");
  175. if(td.length){
  176. td.empty();
  177. var _1a=_18.pageNumber-Math.floor(_18.links/2);
  178. if(_1a<1){
  179. _1a=1;
  180. }
  181. var _1b=_1a+_18.links-1;
  182. if(_1b>_19){
  183. _1b=_19;
  184. }
  185. _1a=_1b-_18.links+1;
  186. if(_1a<1){
  187. _1a=1;
  188. }
  189. for(var i=_1a;i<=_1b;i++){
  190. var a=$("<a class=\"pagination-link\" href=\"javascript:;\"></a>").appendTo(td);
  191. a.linkbutton({plain:true,text:i});
  192. if(i==_18.pageNumber){
  193. a.linkbutton("select");
  194. }else{
  195. a._unbind(".pagination")._bind("click.pagination",{pageNumber:i},function(e){
  196. _10(_15,e.data.pageNumber);
  197. });
  198. }
  199. }
  200. }
  201. var _1c=_18.displayMsg;
  202. _1c=_1c.replace(/{from}/,_18.total==0?0:_18.pageSize*(_18.pageNumber-1)+1);
  203. _1c=_1c.replace(/{to}/,Math.min(_18.pageSize*(_18.pageNumber),_18.total));
  204. _1c=_1c.replace(/{total}/,_18.total);
  205. $(_15).find("div.pagination-info").html(_1c);
  206. if(bb.first){
  207. bb.first.linkbutton({disabled:((!_18.total)||_18.pageNumber==1)});
  208. }
  209. if(bb.prev){
  210. bb.prev.linkbutton({disabled:((!_18.total)||_18.pageNumber==1)});
  211. }
  212. if(bb.next){
  213. bb.next.linkbutton({disabled:(_18.pageNumber==_19)});
  214. }
  215. if(bb.last){
  216. bb.last.linkbutton({disabled:(_18.pageNumber==_19)});
  217. }
  218. _1d(_15,_18.loading);
  219. };
  220. function _1d(_1e,_1f){
  221. var _20=$.data(_1e,"pagination");
  222. var _21=_20.options;
  223. _21.loading=_1f;
  224. if(_21.showRefresh&&_20.bb.refresh){
  225. _20.bb.refresh.linkbutton({iconCls:(_21.loading?"pagination-loading":"pagination-load")});
  226. }
  227. };
  228. $.fn.pagination=function(_22,_23){
  229. if(typeof _22=="string"){
  230. return $.fn.pagination.methods[_22](this,_23);
  231. }
  232. _22=_22||{};
  233. return this.each(function(){
  234. var _24;
  235. var _25=$.data(this,"pagination");
  236. if(_25){
  237. _24=$.extend(_25.options,_22);
  238. }else{
  239. _24=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_22);
  240. $.data(this,"pagination",{options:_24});
  241. }
  242. _1(this);
  243. _14(this);
  244. });
  245. };
  246. $.fn.pagination.methods={options:function(jq){
  247. return $.data(jq[0],"pagination").options;
  248. },loading:function(jq){
  249. return jq.each(function(){
  250. _1d(this,true);
  251. });
  252. },loaded:function(jq){
  253. return jq.each(function(){
  254. _1d(this,false);
  255. });
  256. },refresh:function(jq,_26){
  257. return jq.each(function(){
  258. _14(this,_26);
  259. });
  260. },select:function(jq,_27){
  261. return jq.each(function(){
  262. _10(this,_27);
  263. });
  264. }};
  265. $.fn.pagination.parseOptions=function(_28){
  266. var t=$(_28);
  267. return $.extend({},$.parser.parseOptions(_28,[{total:"number",pageSize:"number",pageNumber:"number",links:"number"},{loading:"boolean",showPageList:"boolean",showPageInfo:"boolean",showRefresh:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined)});
  268. };
  269. $.fn.pagination.defaults={total:1,pageSize:10,pageNumber:1,pageList:[10,20,30,50],loading:false,buttons:null,showPageList:true,showPageInfo:true,showRefresh:true,links:10,layout:["list","sep","first","prev","sep","manual","sep","next","last","sep","refresh","info"],onBeforeSelectPage:function(_29,_2a){
  270. },onSelectPage:function(_2b,_2c){
  271. },onBeforeRefresh:function(_2d,_2e){
  272. },onRefresh:function(_2f,_30){
  273. },onChangePageSize:function(_31){
  274. },beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){
  275. var _32=$(this).pagination("options");
  276. if(_32.pageNumber>1){
  277. $(this).pagination("select",1);
  278. }
  279. }},prev:{iconCls:"pagination-prev",handler:function(){
  280. var _33=$(this).pagination("options");
  281. if(_33.pageNumber>1){
  282. $(this).pagination("select",_33.pageNumber-1);
  283. }
  284. }},next:{iconCls:"pagination-next",handler:function(){
  285. var _34=$(this).pagination("options");
  286. var _35=Math.ceil(_34.total/_34.pageSize);
  287. if(_34.pageNumber<_35){
  288. $(this).pagination("select",_34.pageNumber+1);
  289. }
  290. }},last:{iconCls:"pagination-last",handler:function(){
  291. var _36=$(this).pagination("options");
  292. var _37=Math.ceil(_36.total/_36.pageSize);
  293. if(_36.pageNumber<_37){
  294. $(this).pagination("select",_37);
  295. }
  296. }},refresh:{iconCls:"pagination-refresh",handler:function(){
  297. var _38=$(this).pagination("options");
  298. if(_38.onBeforeRefresh.call(this,_38.pageNumber,_38.pageSize)!=false){
  299. $(this).pagination("select",_38.pageNumber);
  300. _38.onRefresh.call(this,_38.pageNumber,_38.pageSize);
  301. }
  302. }}}};
  303. })(jQuery);