2016-07-07 38 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")]); 
    }); 
}