ext 4.2 grid刷新后 滚动条位置不变

最近开发遇到问题,每次刷新grid的store之后,总是滚动到最前边,从网上搜到的方法是

在实时刷新的时候数据量过大会出现滚动条。这时候需要记录滚动条的位置。只需在grid的viewConfig属性里面添加如下参数

Js代码   收藏代码
  1. onLoad : Ext.emptyFn,  
  2.             listeners : {  
  3.                 beforerefresh : function(v) {  
  4.                     v.scrollTop = v.scroller.dom.scrollTop;  
  5.                     v.scrollHeight = v.scroller.dom.scrollHeight;  
  6.                 },  
  7.                 refresh : function(v) {  
  8.                     v.scroller.dom.scrollTop = v.scrollTop  
  9.                             + (v.scrollTop == 0  
  10.                                     ? 0  
  11.                                     : v.scroller.dom.scrollHeight  
  12.                                             - v.scrollHeight);  
  13.                 }  
  14.             }  

 

如果全部grid都想实现这个功能可以这样

 

Js代码   收藏代码
  1. Ext.override(Ext.grid.GridView, {  
  2.     scrollTop : function() {  
  3.         this.scroller.dom.scrollTop = 0;  
  4.         this.scroller.dom.scrollLeft = 0;  
  5.     },  
  6.     scrollToTop : Ext.emptyFn  
  7. }); 
但是在ext4.2之后就不能执行了,报错说v.scroller是undefined,所有没有dom。

解决方法是换成下边这样:红色标出

  1. onLoad : Ext.emptyFn,  
  2.             listeners : {  
  3.                 beforerefresh : function(v) {  
  4.                     v.scrollTop = v.el.dom.scrollTop;  
  5.                     v.scrollHeight = v.el.dom.scrollHeight;  
  6.                 },  
  7.                 refresh : function(v) {  
  8.                     v.el.dom.scrollTop = v.scrollTop  
  9.                             + (v.scrollTop == 0  
  10.                                     ? 0  
  11.                                     : v.el.dom.scrollHeight  
  12.                                             - v.scrollHeight);  
  13.                 }  
  14.             } 

如果全部grid都想实现这个功能可以这样

 

Js代码   收藏代码
  1. Ext.override(Ext.grid.GridView, {  
  2.     scrollTop : function() {  
  3.         this.el.dom.scrollTop = 0;  
  4.         this.el.dom.scrollLeft = 0;  
  5.     },  
  6.     scrollToTop : Ext.emptyFn  
  7. }); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值