场景:项目中用Ext.ne的t控件Gridpanel做实时数据,每隔3秒重写加载一次数据。
问题:数据刷新时,滚动条就会跳回到顶部。
想法:数据刷新时滚动条记录上一次的位置,保持滚动条不自己回到顶部。
解决办法:
js方法
//刷新数据记录滚动条位置
var Scroll = {
beforerefresh: function (v) {
v.scrollTop = v.scroller.dom.scrollTop;
v.scrollHeight = v.scroller.dom.scrollHeight;
},
refresh: function (v) {
Ext.override(Ext.grid.GridView, {
scrollToTop: function () {
var dom = this.scroller.dom;
dom.scrollTop = v.scrollTop + (v.scrollTop == 0 ? 0 : v.scroller.dom.scrollHeight - v.scrollHeight);
dom.scrollLeft = 0;
}
})
}
}
<View>
<ext:GridView>
<Listeners>
<BeforeRefresh Fn="Scroll.beforerefresh" />
<Refresh Fn="Scroll.refresh" />
</Listeners>
</ext:GridView>
</View>
</ext:GridPanel>
问题解决。