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

标签 javascript extjs checkbox

我有一个 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/

相关文章:

从嵌套 JSON 创建的 JavaScript 数组返回 0 长度

javascript - 如何避免由于 Ext Direct 和动态语言环境加载而导致的嵌套异步回调?

javascript - Ext js 消息框 - 无法在 IE7 中打开

java - 在 AlertDialog 上设置不同的默认选中/未选中

javascript - 如何更改 OpenLayers 5.3 的图 block 语言

javascript - 密码在激活邮件中

php - 使用 JQuery 或 Javascript 刷新图像

javascript - 从 Sencha Touch 1.1.x 迁移到 Sencha Touch 2

javascript - 使用隐藏字段值而不是复选框值计算总计

php - 在 MySQL 中存储第二个复选框的值