1

这里有一个简单的问题:我的 Ext JS 应用程序中有一个带有扩展行的工作网格。繁荣。

目前我html的扩展行中有元素(它只是一个大的div),但这似乎是所有扩展行都能够显示的。

无论如何我的扩展行中呈现 Ext 组件?

小伙伴们加油,点赞期待!

4

1 回答 1

1

您可以只将组件渲染到行扩展器元素中。

var grid = Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    plugins: {
        ptype: 'rowexpander',
        rowBodyTpl : [
            '<div class="row-expander-ct"></div>'
        ]
    },
    store: {
        fields:['name', 'email', 'phone'],
        data: [
            { 'name': 'Lisa',  "email":"lisa@simpsons.com",  "phone":"555-111-1224"  },
            { 'name': 'Bart',  "email":"bart@simpsons.com",  "phone":"555-222-1234" },
            { 'name': 'Homer', "email":"home@simpsons.com",  "phone":"555-222-1244"  },
            { 'name': 'Marge', "email":"marge@simpsons.com", "phone":"555-222-1254"  }
        ]
    },
    columns: [
        { text: 'Name',  dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone' }
    ],
    height: 300,
    width: 400,
    renderTo: Ext.getBody()
});

grid.store.on({
    // Delay the execution of the listener because the grid view will also
    // react to this event, and we want the rows to be rendered before we
    // modify them...
    delay: 1,
    load: function() {
        Ext.each(grid.el.query('.row-expander-ct'), function(ct) {
            Ext.widget('textfield', {
                renderTo: ct
                ,fieldLabel: "Label"
                ,width: '100%'
            });
        });
    }
});

grid.store.load();
于 2013-09-30T20:59:12.157 回答