簡體   English   中英

使用removeAt(rowindex)更新存儲時,PagingMemory Proxy不會刷新

[英]PagingMemory Proxy is not getting refreshed when the store is updated using removeAt(rowindex)

我無法理解EXTJS 3.4中PagingMemoryProxy的行為。 一種。 定義如下:

proxy:new Ext.ux.data.PagingMemoryProxy(jsonData),
listeners : {
load : {
scope : this,
fn : function(actorStore) {
var r = actorStore.getRange();
        var modified = actorStore.getModifiedRecords();
            for ( var i = 0; i < modified.length; i++) {
                      for (j = 0; j < r.length; j++) {
                           if (r[j].get('plannedResourceId') == modified[i].get('plannedResourceId')) {
                                 var changes = modified[i].getChanges();
                                    for (p in changes) {
                                         if (changes.hasOwnProperty(p)) {
                                         r[j].set(p, changes[p]);
                            }}}}}}}}

所以,我遇到的問題是當我使用以下命令刪除行時:

gridPanelToRefresh.getStore().removeAt(value.value.rowIndex);

執行完上述任務后,當我當時單擊刷新按鈕時,刪除的數據也會出現在網格中。 我的意思是使用上述代理創建的商店沒有得到刷新。

能否請您提出一些相同的解決方案。 我得到的一個線索是getModifiedRecords()無法獲取已刪除的記錄。

處理以上查詢時最好的方法是。 在處理此問題時,我提出了以下幾點。

一種。 問題根本與分頁內存無關。 因為它完美地完成了任務。 需要注意的一件事是,每當我們刪除記錄時,最重要的屬性-ModifyedRecords ,dirty都不會改變,因此這就是我的分頁工具欄未得到更新的json的原因:

  var modified = actorStore.getModifiedRecords();

結果,getmodifiedRecords()完全不返回任何內容。

實施方法-當時加載我的JSONdata時,我將其存儲在Global范圍內,然后使用splice更新該JSON,然后在執行刪除事件時將其上傳到存儲中。

  for (var i = 0; i < (jsonData.total); i++) {
        if(i == indexForRemoval) {
           jsonData.data.splice(indexForRemoval,1);
        }
    }
          jsonData.total = ((jsonData.total) - 1);

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM