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