Javascript Ext JS 4.2.1-带分页的网格-复选框状态丢失

Javascript Ext JS 4.2.1-带分页的网格-复选框状态丢失,javascript,extjs,checkbox,Javascript,Extjs,Checkbox,我有一个ExtJS网格,它有一个用于(远程)分页的PagingToolbar和一个复选框列,定义如下: { dataIndex : 'selected', xtype: 'checkcolumn', width : 60 } 但是,如果我选中一个复选框,然后向前和向后翻页,则复选框状态不会保存-所有复选框都未选中 我想,因为存储区只包含当前页面的数据(来自服务器),所以我需要某种方法来存储不在当前数据页面中的行的状态,然后在返

我有一个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")] = item.get("selected");
    });
},
load:function(store) {
    if(!store.checkedItems) store.checkedItems = [];
    store.each(function(item) {
        item.set("selected",store.checkedItems[item.get("Id")]);
    });
}


你可以发布工作解决方案的提琴吗?@Maninder不可以,但是你可以用你拥有的创建一个提琴,我可以尝试做必要的更正。谢谢你的回复,刚才我能够增强你的解决方案,它对我很好。问题是,每当我转到网格的下一页并返回到上一页时,checkedItems变量被初始化为空,因为存储再次被重新加载。因此,我将这些值放在viewModel中,并进行了更多的更改,这有助于解决问题。无论如何,谢谢。这是不可能的,除非你加载的每个页面都完全重新初始化存储。通常,只替换存储数据,但我在存储本身上添加的checkedItems属性不应受到存储加载的影响。是的,因此每当我在分页工具栏中按“下一步”加载下一页时,整个存储都会刷新。这可能是因为我使用的是6.5.3版本的更改。不管怎样,你的解决方案有助于找到我的问题的解决方案,那就是我对你的答案赞不绝口。你可以发布工作解决方案的提琴吗?@Maninder不,但你可以用你拥有的创建一个提琴,我可以试着做必要的更正。谢谢你的回复,刚才我能够增强您的解决方案,它对我很有效。问题是,每当我转到网格的下一页并返回到上一页时,checkedItems变量被初始化为空,因为存储再次被重新加载。因此,我将这些值放在viewModel中,并进行了更多的更改,这有助于解决问题。无论如何,谢谢。这是不可能的,除非你加载的每个页面都完全重新初始化存储。通常,只替换存储数据,但我在存储本身上添加的checkedItems属性不应受到存储加载的影响。是的,因此每当我在分页工具栏中按“下一步”加载下一页时,整个存储都会刷新。这可能是因为我使用的是6.5.3版本的更改。不管怎样,你的解决方案有助于为我的问题找到解决方案,也就是说,我对你的答案表示赞同。