最近我在使用Ext.grid.GridPanel中遇到一个问题。我在每次向Ext.grid.GridPanel中添加记录后,希望刷新Ext.grid.GridPanel中的store并且GridPanel总是指向最后一条记录。但是当Ext.grid.GridPanel中的数据增多后,会出现滚动条,最后一条记录就看不到了。
我想出来一个办法,给store绑定load时间,每次load时都会把Ext.grid.GridPanel指向最后一条记录。代码如下:
var ds = new Ext.data.Store({ ... });
var grid = new Ext.grid.Grid('grid-example', { .... });
grid.render();
//define layout, toolbars, headers, footers, forms, etc...
//and, lastly:
grid.getStore().on({"load": {
fn:function() {
grid.getView().focusRow(grid.Store().getTotalCount()-1);
grid.getSelectionModel().selectLastRow();
},
options: {
single:true
}
}});
ds.load();
其中最关键的一行是:
grid.getView().focusRow(grid.Store().getTotalCount()-1);