ExtJS 5 - 如何传递参数以存储在扩展行中?

ExtJS 5 - How do I pass parameter to store in expanded row?

我正在查看有关 rowexapnder fiddle 的示例,它展示了如何使用行 exapnder 嵌套网格。

我想每行获取不同的数据,这意味着将 id 参数发送到嵌套行。

这是嵌套行的代码:

如何将 id 添加到 personStore 以便每个扩展的节目将具有不同的数据(并且与fiddle)

exapndInnerGrid : function(record) {
                var id = record.get('id');
                var row = Ext.get('empDivId-' + record.get('name'));
                if (!row.dom.childNodes.length) {
                    Ext.create('Ext.grid.Panel', {
                        store: personStore,
                        plugins: {
                            ptype: 'cellediting',
                            clicksToEdit: 1
                        },
                        columns: [{
                            text: 'WorkName',
                            dataIndex: 'workName',
                            locked: true
                        }, {
                            text: 'Designation',
                            dataIndex: 'designation'
                        }, {
                            text: 'Salary',
                            dataIndex: 'salary',
                            editor: {
                                xtype: 'numberfield',
                                allowBlank: false,
                                minValue: 0,
                                maxValue: 100000
                            }
                        }, {
                            text: 'Gender',
                            dataIndex: 'gender',
                            lockable: false
                        }],
                        height: 150,
                        width: 400,
                        renderTo: row
                    });   
                }
                
            }

试试这样的 - fiddle(我修改了你提供的 fiddle 并做了一些更改) 如果 personStore 已经加载,那么每当您展开一行时应用过滤器,然后创建一个临时存储并将过滤的记录添加到该存储并将临时存储用于内部网格。

    exapndInnerGrid : function(record) {
        var row = Ext.get('empDivId-' + record.get('name'));
        var name = record.get('name');
        if (!row.dom.childNodes.length) {
            //personStore.clearFilter();
            personStore.filter('workName', name);
            var personStore2 = Ext.create('Ext.data.Store', {
                fields: [{
                    name: 'workName'
                }, {
                    name: 'designation'
                }, {
                    name: 'salary'
                }, {
                    name: 'gender'
                }]
            });
            personStore2.add(personStore.getRange());
            Ext.create('Ext.grid.Panel', {
                store: personStore2,
                plugins: {
                    ptype: 'cellediting',
                    clicksToEdit: 1
                },
                columns: [{
                    text: 'WorkName',
                    dataIndex: 'workName',
                    locked: true
                }, {
                    text: 'Designation',
                    dataIndex: 'designation'
                }, {
                    text: 'Salary',
                    dataIndex: 'salary',
                    editor: {
                        xtype: 'numberfield',
                        allowBlank: false,
                        minValue: 0,
                        maxValue: 100000
                    }
                }, {
                    text: 'Gender',
                    dataIndex: 'gender',
                    lockable: false
                }],
                height: 150,
                width: 400,
                renderTo: row
            });   
        }

    }