2012-11-08 29 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(); 

网格中的数据也将被更新。

相关问题