Extjs列表在某些情况下,需要定时刷新,但是如果列表未进行分页,一屏显示不下时,无论滚动条当前在什么位置,每次刷新时,总会返回到最顶层,但是需求又要求我们定位到当前位置,该如何处理呢?

解决方法如下:

var me = this; // grid

var gridEl = me.getView().getEl(); // 获取当前视图的El对象

var scrollTop = gridEl.getScrollTop(); // 获取load之前top的偏移量。

me.getStore().load(function(records, operation, success) {

    if(success == true){

    // 在extjs4.2.3时,如果grid有锁定列的时候,grid会分成两个grid,一个是normalGrid,一个是lockedGrid。我们需要处理lockedGrid的位置。

var locked = me.lockedGrid;

locked.getView().getEl().setScrollTop(scrollTop); // load之后设置之前的偏移量

}

});