jquery.pagination.js 7.6 KB

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