Ext4.0.7分页工具自定义分页条数

先给出效果: 第一步:先定义store 本人一般都是直接从api或者网上cv操作的

noSetMeterStore = Ext.create(Ext.data.Store,{
                  model : noSetModel,//model根据自己需求定义model
                  pageSize : itemsPerPage,//分页条数,这里的值是跟分页工具右下方显示的“显示n-m条/共x条”有关系
                  proxy : {
                      type : ajax,            
                      actionMethods: {  
                          read: POST  
                      }, 
                      url : getNoSetMeterUrl,
                      reader : {
                        type : json,
                        root : noSetParaList,
                        successProperty: success,
                        totalProperty : count
                      }
                  }
              });
              noSetMeterStore.load({
                params : {
                    start : start,
                    limit : itemsPerPage//分页条数
                }
            });

第二步:定义一个combobox,以便于在分页工具中添加

var combo = Ext.create(Ext.form.ComboBox, {
                name : pagesize,
                hiddenName : pagesize,
                store : new Ext.data.ArrayStore({
                    fields : [ text, value ],
                    data : [ [ 20, 20 ], [ 40, 40 ], [ 60, 60 ],
                            [ 80, 80 ], [ 100, 100 ] , [ 200, 200 ]]
                }),
                valueField : value,
                displayField : text,
                emptyText : 20,
                width : 50
            });

第三步:给combobox加上change事件

combo.on("select", function(comboBox) {
          
   
                var pagingBar = Ext.getCmp(pagingbar);//获取分页工具组件
                pagingBar.pageSize = parseInt(comboBox.getValue());//修改分页工具组件的pagingsize
                itemsPerPage = parseInt(comboBox.getValue());给分页条数赋值,这里你可以定义一个全局的分页条数,每次在这里更改他的值
                noSetMeterStore.limit = itemsPerPage;//将store里面的limit值也改掉
                noSetMeterStore.pageSize = itemsPerPage;//同理改掉store里面的pagesize值。这个很重要!!!!
                noSetMeterStore.loadPage(1);//不管是在哪个页面,都让store去显示第一个页面,加载第一个页面的数据
            })

第四步:定义一个分页工具,将下拉框给添加进去

var pagingBar = Ext.create(Ext.toolbar.Paging, {
                store : noSetMeterStore,
                id : pagingbar,
                dock : bottom,
                pageSize : itemsPerPage,//这里要将全局的变量写进去
                displayInfo : true,
                displayMsg : <s:text name="hint.page.info"/>,// 显示0-1条,共2条 
                emptyMsg : <s:text name="hint.noData" />, // 没有数据 
                items : [ -, 每页显示, combo, 条 ],//在这里将下拉框加进去,其他的没什么特别的
                listeners : {
                    change : function(paging, pageData) {
          
   
                        start = (pageData.currentPage - 1) * itemsPerPage;
                        total = pageData.total;
                    }
                }
            });

然后就可以愉快的体验了自定义分页了!!! 在具体操作的时候可以根据自己的需求,调整顺序;以上代码亲测可用。

经验分享 程序员 微信小程序 职场和发展