strickjb
16 Jan 2012, 1:48 PM
How does one reload a buffered grid and "start from scratch"?
When I reload a buffered grid, I'm forced to scroll outside of the current pageSize until it reloads new data.
Also, if I reload a grid and the totalCount is less than the pageSize then any new reloads don't take effect because I'm unable to scroll outside the pageSize to force a reload.
Does anyone have any tips/tricks to reload a buffered grid w/o any side effects?
Ext.define('My.grid.Panel', {
extend: 'Ext.grid.Panel',
alias: 'widget.mygrid',
verticalScrollerType: 'paginggridscroller',
disableSelection: true,
invalidateScrollerOnRefresh: false,
viewConfig: {
trackOver: true
}
});
Ext.define('My.store.Store', {
extend: 'Ext.store.Store',
model: 'My.model.Model',
buffered: true,
pageSize: 100,
purgePageCount: 0,
proxy: {
type: 'jsonp',
url: 'data.json',
reader: 'json'
}
});
My function to load the grid. (commented out pieces represent a lot of trial/error to get it to work...)
doLoad: function (dateType) {
var grid = this.getGrid(),
store = Ext.StoreMgr.lookup('MyStore');
store.prefetchData.clear();
store.removeAll();
grid.invalidateScroller();
this.filterParams = this.getFilter().getForm().getValues();
this.filterParams.dateType = dateType;
store.getProxy().extraParams = this.filterParams;
store.guaranteeRange(0, store.pageSize - 1);
},
When I reload a buffered grid, I'm forced to scroll outside of the current pageSize until it reloads new data.
Also, if I reload a grid and the totalCount is less than the pageSize then any new reloads don't take effect because I'm unable to scroll outside the pageSize to force a reload.
Does anyone have any tips/tricks to reload a buffered grid w/o any side effects?
Ext.define('My.grid.Panel', {
extend: 'Ext.grid.Panel',
alias: 'widget.mygrid',
verticalScrollerType: 'paginggridscroller',
disableSelection: true,
invalidateScrollerOnRefresh: false,
viewConfig: {
trackOver: true
}
});
Ext.define('My.store.Store', {
extend: 'Ext.store.Store',
model: 'My.model.Model',
buffered: true,
pageSize: 100,
purgePageCount: 0,
proxy: {
type: 'jsonp',
url: 'data.json',
reader: 'json'
}
});
My function to load the grid. (commented out pieces represent a lot of trial/error to get it to work...)
doLoad: function (dateType) {
var grid = this.getGrid(),
store = Ext.StoreMgr.lookup('MyStore');
store.prefetchData.clear();
store.removeAll();
grid.invalidateScroller();
this.filterParams = this.getFilter().getForm().getValues();
this.filterParams.dateType = dateType;
store.getProxy().extraParams = this.filterParams;
store.guaranteeRange(0, store.pageSize - 1);
},