2013-03-28 104 views
2

我有一個網格,我需要對列執行'求和'操作並在文本框中顯示這些值。 我正在嘗試使用商店的'總和'功能。它工作正常,但是當我銷燬這個商店時,它仍然保留在文本字段中的計算值,但不在網格中。如果我再次摧毀這家商店,那麼它很乾淨。 任何人都可以請指導哪些可能會出錯?Extjs 4.1網格商店'總和'功能保持計算值

在此先感謝。

我的網格給出

Ext.define('${pkgName}.v01t007001.SV01T00700105' , { 
extend : 'Ext.grid.Panel', 
alias  : 'widget.sv01t00700105', 
viewConfig: { 
    stripeRows : true, 
    forceFit  : true, 
    loading  : true, 
    emptyText  : 'No Records to display', 
    listeners  : { 
     viewready : function(v) {    
      var store = Ext.data.StoreManager.get('S01T008003'); 
      store = !store ? Ext.create("S01T008003") : store; 
      store.load();     
     } 
    } 
}, 
features : [{ 
    ftype  : 'summary',  
}], 
initComponent : function() { 
    this.store='S01T008003';    
    me  = this;   
    this.columns = [{ 
     header  : 'STotal', 
     align  : 'right', 
     width  : 80, 
     dataIndex : 'total',   
     renderer : function(value, metaData, record, rowIdx, colIdx, store, view) {     
      var subtotal = Ext.util.Format.number(value,'0.00');     
      var total  = view.getStore().sum('total'); 
      var t   = Ext.util.Format.number(total,'0.00'); 
      Ext.getCmp('total-t00700106').setValue(t); // It is my Text field id 
      return subtotal+'&nbsp' + '?';   
     }   
    }];  
    this.callParent(arguments); 
} 

});

其我的文字fiels

{ 
          xtype  : 'textfield', 
          fieldLabel: 'Total', 
          name  : 'total', 
          id  : 'total-t00700106', 
          width  : 200 

         } 

的我的商店

Ext.define('${pkgName}.S01T008003', { 
extend : 'Ext.data.Store', 
model  : '${appName}.model.M01T008002', 
idProperty: 'id', 
autoLoad : false, 
autoSync : true, 
proxy: { 
    type : 'ajax', 
    noCache : true, 
    api: { 
    read : '${createLink(controller:'C01t008001', action: 'iItemStore')}', 
    destroy : '${createLink(controller:'C01t008001', action: 'removeall')}' 
    }, 
    actionMethods : {   
     read : 'GET', 
     update : 'PUT', 
     create : 'POST', 
     destroy : 'DELETE' 
    }, 
    reader: { 
     type   : 'json', 
     root   : 'data', 
     totalProperty : 'total', 
     successProperty : 'success', 
     messageProperty : 'message', 
     implicitIncludes: true 
    }, 
    simpleSortMode : true 
}, 
sorters: [{ 
    property: 'id', 
    direction: 'asc' 
}] 

});

我控制器

invResetAll : function(button){   
    iItemStore.destroy({ 
    callback : function(records, options, success) { 
     if(success){ 
      console.log('if destroy success!'); 
      iItemStore.removeAll(true); 
     } 
    }   
    }); 

    iItemStore.reload(); 
} 

回答

3

我是一個愚蠢的男孩的那麼簡單

 { 
     header  : 'STotal', 
     align  : 'right', 
     width  : 80, 
     dataIndex : 'total',   
     renderer : function(value, metaData, record, rowIdx, colIdx, store, view) {     
      var subtotal = Ext.util.Format.number(value,'0.00');   
      return subtotal+'&nbsp' + '৳';   
     }, 
     summaryType: 'sum', 
     summaryRenderer: function(value, summaryData, dataIndex) { 
      Ext.getCmp('total-t00700106').setValue(value); 
      return Ext.String.format('{0} Total{1}', value, value !== 1 ? 's' : ''); 
     } 
    }