Thanks for reply Tim. Is there any sample available for the same. I am able to use grid as picker in combo box. But on page load it by default loads 200 elements. On filter it fires service call for first page only. Is there anything wrong with the code.
Code:
Ext.define('TestApp.form.ComboGrid', { extend: 'Ext.form.ComboBox',
requires: [
'Ext.grid.Panel'
],
alias: ['widget.TestApp.form.ComboGrid'],
createPicker: function() {
var me = this,
picker,
menuCls = Ext.baseCSSPrefix + 'menu',
opts = Ext.apply({
selModel: {
mode: me.multiSelect ? 'SIMPLE' : 'SINGLE'
},
floating: true,
hidden: true,
ownerCt: me.ownerCt,
cls: me.el.up('.' + menuCls) ? menuCls : '',
store: me.store,
displayField: me.displayField,
focusOnToFront: true,
pageSize: me.pageSize,
hideHeaders: true,
verticalScrollerType: {
xtype:'paginggridscroller',
trailingBufferZone: 20, // Keep 200 records buffered in memory behind scroll
leadingBufferZone: 30
},
// do not reset the scrollbar when the view refreshs
invalidateScrollerOnRefresh: false,
// infinite scrolling does not support selection
//disableSelection: true,
highlightItem: function (item) {
}
},
me.listConfig,
me.defaultListConfig);
// NOTE: we simply use a grid panel
//picker = me.picker = Ext.create('Ext.view.BoundList', opts);
picker = me.picker = Ext.create('Ext.grid.Panel', opts);
// hack: pass getNode() to the view
picker.getNode = function() {
picker.getView().getNode(arguments);
};
me.mon(picker, {
itemclick: me.onItemClick,
refresh: me.onListRefresh,
scope: me
});
me.mon(picker.getSelectionModel(), {
selectionChange: me.onListSelectionChange,
scope: me
});
return picker;
}
});