最近开发遇到问题,每次刷新grid的store之后,总是滚动到最前边,从网上搜到的方法是
在实时刷新的时候数据量过大会出现滚动条。这时候需要记录滚动条的位置。只需在grid的viewConfig属性里面添加如下参数
- onLoad : Ext.emptyFn,
- listeners : {
- beforerefresh : function(v) {
- v.scrollTop = v.scroller.dom.scrollTop;
- v.scrollHeight = v.scroller.dom.scrollHeight;
- },
- refresh : function(v) {
- v.scroller.dom.scrollTop = v.scrollTop
- + (v.scrollTop == 0
- ? 0
- : v.scroller.dom.scrollHeight
- - v.scrollHeight);
- }
- }
如果全部grid都想实现这个功能可以这样
- Ext.override(Ext.grid.GridView, {
- scrollTop : function() {
- this.scroller.dom.scrollTop = 0;
- this.scroller.dom.scrollLeft = 0;
- },
- scrollToTop : Ext.emptyFn
- });
解决方法是换成下边这样:红色标出
- onLoad : Ext.emptyFn,
- listeners : {
- beforerefresh : function(v) {
- v.scrollTop = v.el.dom.scrollTop;
- v.scrollHeight = v.el.dom.scrollHeight;
- },
- refresh : function(v) {
- v.el.dom.scrollTop = v.scrollTop
- + (v.scrollTop == 0
- ? 0
- : v.el.dom.scrollHeight
- - v.scrollHeight);
- }
- }
如果全部grid都想实现这个功能可以这样
- Ext.override(Ext.grid.GridView, {
- scrollTop : function() {
- this.el.dom.scrollTop = 0;
- this.el.dom.scrollLeft = 0;
- },
- scrollToTop : Ext.emptyFn
- });
本文介绍如何在使用ExtJS时,保存并恢复Grid组件的滚动位置,以防止刷新后滚动条跳转至顶部的问题。通过在Grid的viewConfig属性中添加特定的监听器,可以在数据刷新前后记录滚动条的位置,并在刷新后应用这些位置信息,保持用户的浏览体验连续。此方法适用于解决数据量较大时的滚动条位置恢复问题。

7408

被折叠的 条评论
为什么被折叠?



