2016-07-07 58 views
0

我已具有用於(遠程)尋呼,以及複選框列一個PagingToolbar一個ExtJS網格定義爲:分機JS 4.2.1 - 網格尋呼 - 複選框狀態丟失

{ 
    dataIndex : 'selected', 
    xtype: 'checkcolumn', 
    width : 60      
} 

然而,如果我檢查一個盒子然後頁面向前和向後,複選框狀態不會被保存 - 所有複選框都未被選中。

我猜因爲商店只包含當前頁面(從服務器)的數據,我需要某種方式來存儲不在當前數據頁面中的行的狀態,然後在我返回時重新選中複選框到那個頁面。

是否有最佳做法,或在分頁時將複選框狀態存儲在商店中的示例?

回答

4

那麼,這是如此低級別的工作,以至於沒有人還沒有想過爲它做出「最佳實踐」。例如。

beforeload:function(store) { 
    if(!store.checkedItems) store.checkedItems = []; 
    store.each(function(item) { 
     store.checkedItems[item.get("Id")] = item.get("selected"); 
    }); 
}, 
load:function(store) { 
    if(!store.checkedItems) store.checkedItems = []; 
    store.each(function(item) { 
     item.set("selected",store.checkedItems[item.get("Id")]); 
    }); 
} 

beforeload:function(store) { 
    if(!store.checkedItems) store.checkedItems = []; 
    store.each(function(item) { 
     store.checkedItems[item.get("Id")] = {selected: item.get("selected") }; // extensible if you want to keep more than one checkbox... 
    }); 
}, 
load:function(store) { 
    if(!store.checkedItems) store.checkedItems = []; 
    store.each(function(item) { 
     item.set(store.checkedItems[item.get("Id")]); 
    }); 
}