PageSize plugin for PagingToolbar

2193 단어 ext
Hi All,
Just created my first (quite simple) extension - actually a plugin for PagingToolbar that allows you to change the pageSize property using a combo box with some predefined options. This was developed using Ext 2.0a - I'm interested in comments on how this
could have been done more efficiently, etc. Thanks in advance.
Ext.namespace('Ext.ux');

Ext.ux.PageSizePlugin = function() {
    PageSizePlugin.superclass.constructor.call(this, {
        store: new Ext.data.SimpleStore({
            fields: ['text', 'value'],
            data: [['10', 10], ['20', 20], ['30', 30], ['50', 50], ['100', 100]]
        }),
        mode: 'local',
        displayField: 'text',
        valueField: 'value',
        editable: false,
        allowBlank: false,
        triggerAction: 'all',
        width: 40
    });
};

Ext.extend(Ext.ux.PageSizePlugin, Ext.form.ComboBox, {
    init: function(paging) {
        paging.on('render', this.onInitView, this);
    },
    
    onInitView: function(paging) {
        paging.add('-',
            this,
            'Items per page'
        );
        this.setValue(paging.pageSize);
        this.on('select', this.onPageSizeChanged, paging);
    },
    
    onPageSizeChanged: function(combo) {
        this.pageSize = parseInt(combo.getValue());
        this.doLoad(0);
    }
});

To use the plugin, you need to add it to the PagingToolbar creation:
    var myPagingToolbar = new Ext.PagingToolbar({
        displayInfo: true,
        emptyMsg: 'Nothing to show',
        store: this.store,
        plugins: [new Ext.ux.PageSizePlugin()]
    });

and then just add it to the 'bbar' config option of the grid.
Other plugin very good is the Ext.ux.Andrie.pPageSize
http://extjs.com/learn/Plugin:pPageSize

좋은 웹페이지 즐겨찾기