Grid Load上的动态复选框选择

时间:2017-11-21 09:05:58

标签: javascript extjs

我正在使用选择模型。我在哪里选择一些记录并发送到后端。在重新加载网格时,我希望选择这些记录。所以我将这些记录复制到带索引的数组中。现在当我重新加载时,我想再次选择它。我觉得这个错误。

未捕获的TypeError:item.getId不是函数

这是我在想什么

store.on('load', function(thistore, records , successful , operation , eOpts){
        me.store.loadData(thistore.data.items);
        var checkRec = me.checkRec;
        var sm = me.getSelectionModel();
        for(var i=0; i<checkRec.length; i++){
            sm.select(checkRec[i].index,true);
        }
});

任何人都可以建议我如何改进代码。

1 个答案:

答案 0 :(得分:0)

我将如何做到这一点:

Ext.application({
    name: 'Fiddle',

    launch: function () {
        var store = Ext.create('Ext.data.Store', {
            fields: ['name', 'age'],
            listeners: {
                load: function (store, records, successful, operation, eOpts) {
                    for(var i=0;i<store.getCount();i++) {
                        store.getAt(i).set('checked', true);
                    }
                }
            },
            proxy: {
                type: 'ajax',
                url: 'data.json',
                reader: {
                    type: 'json'
                }
            },
            autoLoad: true
        })

        Ext.Viewport.add({
            xtype: 'panel',
            title: 'POC',
            layout: 'fit',
            items: [{
                xtype: 'grid',
                id: 'gridid',
                store: store,
                selModel: {
                    selType: 'rowmodel',
                    mode: 'SIMPLE'
                },
                columns: [{
                    xtype: 'checkcolumn',
                    dataIndex: 'checked'
                }, {
                    text: 'Name',
                    dataIndex: 'name',
                    flex: 1
                }, {
                    text: 'Age',
                    dataIndex: 'age',
                    flex: 1
                }]
            }]
        })
    }
});

工作小提琴: https://fiddle.sencha.com/#view/editor&fiddle/29ui