2012-11-08 49 views
2

我在grid.Panel中有一個動作列,它改變了字段值並保存了存儲數據。但每次調用store.save時,網格滾動位置都會返回top:0Extjs在store.save後保持網格滾動位置

示例代碼:

Ext.define('SF.view.Myview.List' , { 
    extend: 'Ext.grid.Panel', 
    viewConfig: { 
     preserveScrollOnRefresh: true, 
    }, 

    store: 'Contents', 

    initComponent: function() { 


     this.columns = [ 
      { xtype: 'actioncolumn', 
      header: 'Action' 
      , width: 60 
      , items: [{ // change status button 
       icon: 'http://whatisextjs.com/BAHO/icons/cancel.png' 
       , handler: function(grid, rowIndex, colindex) { 
        var record = grid.getStore().getAt(rowIndex); 
        record.set('status',6); 
        grid.store.save(); 

       } 
      }, 

我已經試過了preserveScrollOnRefresh財產沒有成功。該屬性適用於分頁和工具欄按鈕,但不適用於store.refresh/load事件。

是否可以保存數據並刷新行而不失去滾動位置?

+0

接受另一個變量並將商店數據分配到網格之前 – Daya

+0

有趣的原因正是該開關的用途 - 刷新 – dbrin

+0

@dbrin注意到我寫了「刷新行」,而不是完整的網格。 –

回答

0

沒錯,調用保存記錄的方法:

var record = grid.getStore().getAt(rowIndex); 
record.set('status',6); 
record.save(); 

網格中的數據也將被更新。

相關問題