我有一个 ExtJS 网格,其中有一个用于(远程)分页的 PagingToolbar,以及一个定义为的复选框列:
{
dataIndex : 'selected',
xtype: 'checkcolumn',
width : 60
}
但是,如果我选中一个复选框,然后向前和向后翻页,则不会保存复选框状态 - 所有复选框均未选中。
我猜由于存储仅包含当前页面的数据(来自服务器),因此我需要某种方式来存储不在当前数据页面中的行的状态,然后在返回时恢复复选框该页面。
是否有最佳实践或在分页时将复选框状态存储在商店中的示例?
最佳答案
嗯,这是如此低级的工作,以至于没有人想到为其制定“最佳实践”。例如
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")]);
});
}
关于javascript - Ext JS 4.2.1 - 带分页的网格 - 复选框状态丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38241152/