2013-05-20 48 views
1

我在Extjs 4.2中有一個網格,它的存儲配置如下。Extjs 4.2網格刷新加載舊數據

var userStore = Ext.create('Ext.data.JsonStore', { 
model: 'User', 
proxy: { 
    type: 'ajax', 
    api: { 
     create: '/pwbench/form/products/fctrmgmt/data.json', 
     read: '/pwbench/form/products/fctrmgmt/data.json', 
     update: '/pwbench/form/products/fctrmgmt/data.json', 
     destroy: '/pwbench/form/products/fctrmgmt/data.json' 
    }, 
    reader: { 
     type: 'json' 
    }, 
    writer: { 
     type: 'json' 
    } 
}, 
autoLoad: true 

}); 

在網格內部,點擊保存我有以下配置。

handler: function() { 
     var recordsArray = new Array(); 
     var dataRecords = new Array(); 
     recordsArray = grid.getStore().data.items; 
     for (var i = 0; i < recordsArray.length; i++) { 
      console.log(recordsArray[i].data); 
      dataRecords.push(Ext.encode(recordsArray[i].data)); 
     } 
     console.log(dataRecords.length); 
     Ext.Ajax.request({ 
      url: 'mainpage.jsp', 
      params: { 
       records: dataRecords 
      }, 
      success: function(response){ 
       var text = response.responseText; 
       console.log(text); 
       userStore.sync(); 
       userStore.load(); 

      } 
     }); 

    } 

我有一個Java類,其能夠讀取由AJAX請求中發送的數據,然後我改寫該存儲使用獲取數據的data.json文件。 json文件被覆蓋沒有任何問題,但問題是,當我在同步之後調用userStore.load()時,會在進行任何更改之前顯示舊數據。即使在刷新網格或刷新整個頁面時,它也會顯示舊數據,只有當我在Eclipse中刷新整個項目並重新加載頁面時,才顯示新的覆蓋數據。

這是一些緩存問題?有人可以告訴我什麼是問題?

+0

內成功的成功回調使商店同步。語法是this.get Store()。sync();它會幫助你。 – Hariharan

+0

爲此,我是否需要在商店中添加一些ID?例如,this.get('Storeid')Store()。sync? 我甚至嘗試過在成功函數中使用this.getStore()。sync(),導致出現錯誤,說明getStore沒有爲該對象定義。 –

+0

嗨用戶2380798請參閱sencha示例,在那裏你能夠理解。 http://docs.sencha.com/extjs/4.2.0/#!/guide/application_architecture 不需要storeid,它需要storename – Hariharan

回答

0

你應該把負載在同步

userStore.sync({ 
     success: function() { 
      userStore.load...