jquery.pagination.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. /**
  2. * jQuery EasyUI 1.3.4
  3. *
  4. * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL or commercial licenses
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. * http://www.gnu.org/licenses/gpl.txt
  9. * http://www.jeasyui.com/license_commercial.php
  10. *
  11. */
  12. (function($){
  13. function _1(_2){
  14. var _3=$.data(_2,"pagination");
  15. var _4=_3.options;
  16. var bb=_3.bb={};
  17. var _5=$(_2).addClass("pagination").html("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr></tr></table>");
  18. var tr=_5.find("tr");
  19. function _6(_7){
  20. var _8=_4.nav[_7];
  21. var a=$("<a href=\"javascript:void(0)\"></a>").appendTo(tr);
  22. a.wrap("<td></td>");
  23. a.linkbutton({iconCls:_8.iconCls,plain:true}).unbind(".pagination").bind("click.pagination",function(){
  24. _8.handler.call(_2);
  25. });
  26. return a;
  27. };
  28. if(_4.showPageList){
  29. var ps=$("<select class=\"pagination-page-list\"></select>");
  30. ps.bind("change",function(){
  31. _4.pageSize=parseInt($(this).val());
  32. _4.onChangePageSize.call(_2,_4.pageSize);
  33. _b(_2,_4.pageNumber);
  34. });
  35. for(var i=0;i<_4.pageList.length;i++){
  36. $("<option></option>").text(_4.pageList[i]).appendTo(ps);
  37. }
  38. $("<td></td>").append(ps).appendTo(tr);
  39. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  40. }
  41. bb.first=_6("first");
  42. bb.prev=_6("prev");
  43. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  44. $("<span style=\"padding-left:6px;\"></span>").html(_4.beforePageText).appendTo(tr).wrap("<td></td>");
  45. bb.num=$("<input class=\"pagination-num\" type=\"text\" value=\"1\" size=\"2\">").appendTo(tr).wrap("<td></td>");
  46. bb.num.unbind(".pagination").bind("keydown.pagination",function(e){
  47. if(e.keyCode==13){
  48. var _9=parseInt($(this).val())||1;
  49. _b(_2,_9);
  50. return false;
  51. }
  52. });
  53. bb.after=$("<span style=\"padding-right:6px;\"></span>").appendTo(tr).wrap("<td></td>");
  54. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  55. bb.next=_6("next");
  56. bb.last=_6("last");
  57. if(_4.showRefresh){
  58. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  59. bb.refresh=_6("refresh");
  60. }
  61. if(_4.buttons){
  62. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  63. if($.isArray(_4.buttons)){
  64. for(var i=0;i<_4.buttons.length;i++){
  65. var _a=_4.buttons[i];
  66. if(_a=="-"){
  67. $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
  68. }else{
  69. var td=$("<td></td>").appendTo(tr);
  70. var a=$("<a href=\"javascript:void(0)\"></a>").appendTo(td);
  71. a[0].onclick=eval(_a.handler||function(){
  72. });
  73. a.linkbutton($.extend({},_a,{plain:true}));
  74. }
  75. }
  76. }else{
  77. var td=$("<td></td>").appendTo(tr);
  78. $(_4.buttons).appendTo(td).show();
  79. }
  80. }
  81. $("<div class=\"pagination-info\"></div>").appendTo(_5);
  82. $("<div style=\"clear:both;\"></div>").appendTo(_5);
  83. };
  84. function _b(_c,_d){
  85. var _e=$.data(_c,"pagination").options;
  86. _f(_c,{pageNumber:_d});
  87. _e.onSelectPage.call(_c,_e.pageNumber,_e.pageSize);
  88. };
  89. function _f(_10,_11){
  90. var _12=$.data(_10,"pagination");
  91. var _13=_12.options;
  92. var bb=_12.bb;
  93. $.extend(_13,_11||{});
  94. var ps=$(_10).find("select.pagination-page-list");
  95. if(ps.length){
  96. ps.val(_13.pageSize+"");
  97. _13.pageSize=parseInt(ps.val());
  98. }
  99. var _14=Math.ceil(_13.total/_13.pageSize)||1;
  100. if(_13.pageNumber<1){
  101. _13.pageNumber=1;
  102. }
  103. if(_13.pageNumber>_14){
  104. _13.pageNumber=_14;
  105. }
  106. bb.num.val(_13.pageNumber);
  107. bb.after.html(_13.afterPageText.replace(/{pages}/,_14));
  108. var _15=_13.displayMsg;
  109. _15=_15.replace(/{from}/,_13.total==0?0:_13.pageSize*(_13.pageNumber-1)+1);
  110. _15=_15.replace(/{to}/,Math.min(_13.pageSize*(_13.pageNumber),_13.total));
  111. _15=_15.replace(/{total}/,_13.total);
  112. $(_10).find("div.pagination-info").html(_15);
  113. bb.first.add(bb.prev).linkbutton({disabled:(_13.pageNumber==1)});
  114. bb.next.add(bb.last).linkbutton({disabled:(_13.pageNumber==_14)});
  115. _16(_10,_13.loading);
  116. };
  117. function _16(_17,_18){
  118. var _19=$.data(_17,"pagination");
  119. var _1a=_19.options;
  120. var bb=_19.bb;
  121. _1a.loading=_18;
  122. if(_1a.showRefresh){
  123. _19.bb.refresh.linkbutton({iconCls:(_1a.loading?"pagination-loading":"pagination-load")});
  124. }
  125. };
  126. $.fn.pagination=function(_1b,_1c){
  127. if(typeof _1b=="string"){
  128. return $.fn.pagination.methods[_1b](this,_1c);
  129. }
  130. _1b=_1b||{};
  131. return this.each(function(){
  132. var _1d;
  133. var _1e=$.data(this,"pagination");
  134. if(_1e){
  135. _1d=$.extend(_1e.options,_1b);
  136. }else{
  137. _1d=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_1b);
  138. $.data(this,"pagination",{options:_1d});
  139. }
  140. _1(this);
  141. _f(this);
  142. });
  143. };
  144. $.fn.pagination.methods={options:function(jq){
  145. return $.data(jq[0],"pagination").options;
  146. },loading:function(jq){
  147. return jq.each(function(){
  148. _16(this,true);
  149. });
  150. },loaded:function(jq){
  151. return jq.each(function(){
  152. _16(this,false);
  153. });
  154. },refresh:function(jq,_1f){
  155. return jq.each(function(){
  156. _f(this,_1f);
  157. });
  158. },select:function(jq,_20){
  159. return jq.each(function(){
  160. _b(this,_20);
  161. });
  162. }};
  163. $.fn.pagination.parseOptions=function(_21){
  164. var t=$(_21);
  165. return $.extend({},$.parser.parseOptions(_21,[{total:"number",pageSize:"number",pageNumber:"number"},{loading:"boolean",showPageList:"boolean",showRefresh:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined)});
  166. };
  167. $.fn.pagination.defaults={total:1,pageSize:10,pageNumber:1,pageList:[10,20,30,50],loading:false,buttons:null,showPageList:true,showRefresh:true,onSelectPage:function(_22,_23){
  168. },onBeforeRefresh:function(_24,_25){
  169. },onRefresh:function(_26,_27){
  170. },onChangePageSize:function(_28){
  171. },beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){
  172. var _29=$(this).pagination("options");
  173. if(_29.pageNumber>1){
  174. $(this).pagination("select",1);
  175. }
  176. }},prev:{iconCls:"pagination-prev",handler:function(){
  177. var _2a=$(this).pagination("options");
  178. if(_2a.pageNumber>1){
  179. $(this).pagination("select",_2a.pageNumber-1);
  180. }
  181. }},next:{iconCls:"pagination-next",handler:function(){
  182. var _2b=$(this).pagination("options");
  183. var _2c=Math.ceil(_2b.total/_2b.pageSize);
  184. if(_2b.pageNumber<_2c){
  185. $(this).pagination("select",_2b.pageNumber+1);
  186. }
  187. }},last:{iconCls:"pagination-last",handler:function(){
  188. var _2d=$(this).pagination("options");
  189. var _2e=Math.ceil(_2d.total/_2d.pageSize);
  190. if(_2d.pageNumber<_2e){
  191. $(this).pagination("select",_2e);
  192. }
  193. }},refresh:{iconCls:"pagination-refresh",handler:function(){
  194. var _2f=$(this).pagination("options");
  195. if(_2f.onBeforeRefresh.call(this,_2f.pageNumber,_2f.pageSize)!=false){
  196. $(this).pagination("select",_2f.pageNumber);
  197. _2f.onRefresh.call(this,_2f.pageNumber,_2f.pageSize);
  198. }
  199. }}}};
  200. })(jQuery);