jquery.pagination.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. /**
  2. * EasyUI for jQuery 1.7.0
  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. 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. _14(_11,{pageNumber:_12});
  141. _13.onSelectPage.call(_11,_13.pageNumber,_13.pageSize);
  142. };
  143. function _14(_15,_16){
  144. var _17=$.data(_15,"pagination");
  145. var _18=_17.options;
  146. var bb=_17.bb;
  147. $.extend(_18,_16||{});
  148. var ps=$(_15).find("select.pagination-page-list");
  149. if(ps.length){
  150. ps.val(_18.pageSize+"");
  151. _18.pageSize=parseInt(ps.val());
  152. }
  153. var _19=Math.ceil(_18.total/_18.pageSize)||1;
  154. if(_18.pageNumber<1){
  155. _18.pageNumber=1;
  156. }
  157. if(_18.pageNumber>_19){
  158. _18.pageNumber=_19;
  159. }
  160. if(_18.total==0){
  161. _18.pageNumber=0;
  162. _19=0;
  163. }
  164. if(bb.num){
  165. bb.num.val(_18.pageNumber);
  166. }
  167. if(bb.after){
  168. bb.after.html(_18.afterPageText.replace(/{pages}/,_19));
  169. }
  170. var td=$(_15).find("td.pagination-links");
  171. if(td.length){
  172. td.empty();
  173. var _1a=_18.pageNumber-Math.floor(_18.links/2);
  174. if(_1a<1){
  175. _1a=1;
  176. }
  177. var _1b=_1a+_18.links-1;
  178. if(_1b>_19){
  179. _1b=_19;
  180. }
  181. _1a=_1b-_18.links+1;
  182. if(_1a<1){
  183. _1a=1;
  184. }
  185. for(var i=_1a;i<=_1b;i++){
  186. var a=$("<a class=\"pagination-link\" href=\"javascript:;\"></a>").appendTo(td);
  187. a.linkbutton({plain:true,text:i});
  188. if(i==_18.pageNumber){
  189. a.linkbutton("select");
  190. }else{
  191. a.unbind(".pagination").bind("click.pagination",{pageNumber:i},function(e){
  192. _10(_15,e.data.pageNumber);
  193. });
  194. }
  195. }
  196. }
  197. var _1c=_18.displayMsg;
  198. _1c=_1c.replace(/{from}/,_18.total==0?0:_18.pageSize*(_18.pageNumber-1)+1);
  199. _1c=_1c.replace(/{to}/,Math.min(_18.pageSize*(_18.pageNumber),_18.total));
  200. _1c=_1c.replace(/{total}/,_18.total);
  201. $(_15).find("div.pagination-info").html(_1c);
  202. if(bb.first){
  203. bb.first.linkbutton({disabled:((!_18.total)||_18.pageNumber==1)});
  204. }
  205. if(bb.prev){
  206. bb.prev.linkbutton({disabled:((!_18.total)||_18.pageNumber==1)});
  207. }
  208. if(bb.next){
  209. bb.next.linkbutton({disabled:(_18.pageNumber==_19)});
  210. }
  211. if(bb.last){
  212. bb.last.linkbutton({disabled:(_18.pageNumber==_19)});
  213. }
  214. _1d(_15,_18.loading);
  215. };
  216. function _1d(_1e,_1f){
  217. var _20=$.data(_1e,"pagination");
  218. var _21=_20.options;
  219. _21.loading=_1f;
  220. if(_21.showRefresh&&_20.bb.refresh){
  221. _20.bb.refresh.linkbutton({iconCls:(_21.loading?"pagination-loading":"pagination-load")});
  222. }
  223. };
  224. $.fn.pagination=function(_22,_23){
  225. if(typeof _22=="string"){
  226. return $.fn.pagination.methods[_22](this,_23);
  227. }
  228. _22=_22||{};
  229. return this.each(function(){
  230. var _24;
  231. var _25=$.data(this,"pagination");
  232. if(_25){
  233. _24=$.extend(_25.options,_22);
  234. }else{
  235. _24=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_22);
  236. $.data(this,"pagination",{options:_24});
  237. }
  238. _1(this);
  239. _14(this);
  240. });
  241. };
  242. $.fn.pagination.methods={options:function(jq){
  243. return $.data(jq[0],"pagination").options;
  244. },loading:function(jq){
  245. return jq.each(function(){
  246. _1d(this,true);
  247. });
  248. },loaded:function(jq){
  249. return jq.each(function(){
  250. _1d(this,false);
  251. });
  252. },refresh:function(jq,_26){
  253. return jq.each(function(){
  254. _14(this,_26);
  255. });
  256. },select:function(jq,_27){
  257. return jq.each(function(){
  258. _10(this,_27);
  259. });
  260. }};
  261. $.fn.pagination.parseOptions=function(_28){
  262. var t=$(_28);
  263. 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)});
  264. };
  265. $.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){
  266. },onBeforeRefresh:function(_2b,_2c){
  267. },onRefresh:function(_2d,_2e){
  268. },onChangePageSize:function(_2f){
  269. },beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){
  270. var _30=$(this).pagination("options");
  271. if(_30.pageNumber>1){
  272. $(this).pagination("select",1);
  273. }
  274. }},prev:{iconCls:"pagination-prev",handler:function(){
  275. var _31=$(this).pagination("options");
  276. if(_31.pageNumber>1){
  277. $(this).pagination("select",_31.pageNumber-1);
  278. }
  279. }},next:{iconCls:"pagination-next",handler:function(){
  280. var _32=$(this).pagination("options");
  281. var _33=Math.ceil(_32.total/_32.pageSize);
  282. if(_32.pageNumber<_33){
  283. $(this).pagination("select",_32.pageNumber+1);
  284. }
  285. }},last:{iconCls:"pagination-last",handler:function(){
  286. var _34=$(this).pagination("options");
  287. var _35=Math.ceil(_34.total/_34.pageSize);
  288. if(_34.pageNumber<_35){
  289. $(this).pagination("select",_35);
  290. }
  291. }},refresh:{iconCls:"pagination-refresh",handler:function(){
  292. var _36=$(this).pagination("options");
  293. if(_36.onBeforeRefresh.call(this,_36.pageNumber,_36.pageSize)!=false){
  294. $(this).pagination("select",_36.pageNumber);
  295. _36.onRefresh.call(this,_36.pageNumber,_36.pageSize);
  296. }
  297. }}}};
  298. })(jQuery);