DataListPaging.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. Ext.define('uas.view.grid.dataList.DataListPaging', {
  2. extend: 'Ext.toolbar.Paging',
  3. xtype: 'dataListPaging',
  4. cls:'x-dataListPaging',
  5. height: 36,
  6. dock: 'bottom',
  7. displayInfo: false,
  8. emptyMsg: "无数据",
  9. items:['->',{
  10. itemId: 'pageSizeItem',
  11. cls:'x-dl-paging-combo',
  12. labelWidth:60,
  13. width:124,
  14. value:100,
  15. labelAlgin:'right',
  16. xtype:'combo',
  17. editable:false,
  18. fieldLabel:'每页显示',
  19. store:[[
  20. '100',100
  21. ],[
  22. '200',200
  23. ],[
  24. '500',500
  25. ],[
  26. '1000',1000
  27. ]],
  28. listeners:{
  29. change:function(me,newValue,oldValue){
  30. const paging = me.ownerCt;
  31. const grid = paging.ownerCt;
  32. const { store } = grid;
  33. const pageCountItem = paging.down('#pageCountItem');
  34. const dataCount = paging.down('#dataCountItem');
  35. if(newValue!==oldValue){
  36. store.setPageSize(newValue);
  37. pageCountItem.update(Ext.String.format(paging.afterPageText,'*'));
  38. dataCount.setValue("行/共*行");
  39. store.loadPage(1)
  40. }
  41. }
  42. }
  43. },{
  44. itemId: 'dataCountItem',
  45. cls:'x-dl-paging-display',
  46. xtype:'displayfield',
  47. value:'行/共*行'
  48. }],
  49. getPagingItems: function() {
  50. var me = this,
  51. inputListeners = {
  52. scope: me,
  53. blur: me.onPagingBlur
  54. };
  55. inputListeners[Ext.supports.SpecialKeyDownRepeat ? 'keydown' : 'keypress'] = me.onPagingKeyDown;
  56. return [
  57. {
  58. itemId: 'first',
  59. tooltip: me.firstText,
  60. overflowText: me.firstText,
  61. iconCls: Ext.baseCSSPrefix + 'tbar-page-first',
  62. disabled: true,
  63. handler: me.moveFirst,
  64. scope: me
  65. },
  66. {
  67. itemId: 'prev',
  68. tooltip: me.prevText,
  69. overflowText: me.prevText,
  70. iconCls: Ext.baseCSSPrefix + 'tbar-page-prev',
  71. disabled: true,
  72. handler: me.movePrevious,
  73. scope: me
  74. },
  75. '-',
  76. me.beforePageText,
  77. {
  78. xtype: 'numberfield',
  79. itemId: 'inputItem',
  80. name: 'inputItem',
  81. cls: Ext.baseCSSPrefix + 'tbar-page-number',
  82. allowDecimals: false,
  83. minValue: 1,
  84. hideTrigger: true,
  85. enableKeyEvents: true,
  86. keyNavEnabled: false,
  87. selectOnFocus: true,
  88. submitValue: false,
  89. // mark it as not a field so the form will not catch it when getting fields
  90. isFormField: false,
  91. width: me.inputItemWidth,
  92. margin: '-1 2 3 2',
  93. listeners: inputListeners
  94. },
  95. {
  96. xtype: 'tbtext',
  97. itemId: 'pageCountItem',
  98. html: Ext.String.format(me.afterPageText, '*')
  99. },
  100. '-',
  101. {
  102. itemId: 'next',
  103. tooltip: me.nextText,
  104. overflowText: me.nextText,
  105. iconCls: Ext.baseCSSPrefix + 'tbar-page-next',
  106. disabled: true,
  107. handler: me.moveNext,
  108. scope: me
  109. },
  110. {
  111. itemId: 'last',
  112. tooltip: me.lastText,
  113. overflowText: me.lastText,
  114. iconCls: Ext.baseCSSPrefix + 'tbar-page-last',
  115. disabled: true,
  116. handler: me.moveLast,
  117. scope: me
  118. },
  119. '-',
  120. {
  121. itemId: 'refresh',
  122. tooltip: me.refreshText,
  123. overflowText: me.refreshText,
  124. iconCls: Ext.baseCSSPrefix + 'tbar-loading',
  125. disabled: me.store.isLoading(),
  126. handler: me.doRefresh,
  127. scope: me
  128. }
  129. ];
  130. },
  131. moveLast: function() {
  132. var me = this,
  133. last = me.getPageData().pageCount;
  134. if (me.fireEvent('beforechange', me, last) !== false) {
  135. me.store.loadPage(Number.MAX_SAFE_INTEGER);
  136. return true;
  137. }
  138. return false;
  139. },
  140. });