使用extjs4的嵌套网格

使用extjs4的嵌套网格,extjs4,Extjs4,我可以将网格放入另一个网格的插件中 这是我的网格,我想把配置'插件'扩展网格 var grid = new Ext.grid.GridPanel({ store: store, columns: [ { header: 'Customer Name', dataIndex: 'CustomerName', width: 212 }, { header: 'Charge Date',

我可以将网格放入另一个网格的插件中

这是我的网格,我想把配置'插件'扩展网格

 var grid = new Ext.grid.GridPanel({
                    store: store,
                    columns: [
        { header: 'Customer Name', dataIndex: 'CustomerName', width: 212 },
        { header: 'Charge Date', dataIndex: 'ChargeDate', width: 212 },
        { header: 'Package Plan', dataIndex: 'PackagePlan', width: 212 },
        { header: 'Current Invoice Sum', dataIndex: 'CurrentInvoiceSum', width: 212 }
     ],
                    plugins: [{
                        ptype: 'rowexpander',
                        rowBodyTpl: ['<div style="background-color:#CBDDF3; width:643px;margin-left:147px;margin-bottom: 20px;border: 1px solid;">',
            '<p><b>Customer Details:</b><br/>{CustomerName}<br/> {CustomerAddress}, {CustomerPhone}, {CustomerEmail} </p>',
                                '<p><b>Package Type:</b> {PackagePlan}<br/>',
                                '<b>Invoice Details:</b></p>',
                   '<div class="nestedO" id="{InvoiceId}"></div> </div>',
        ]
                    }],
                    width: 900,
                    height: 450,
                    renderTo: Ext.get('Ongoing')
                });
var grid=new Ext.grid.GridPanel({
店:店,,
栏目:[
{标题:“客户名称”,数据索引:“客户名称”,宽度:212},
{标题:“充电日期”,数据索引:“充电日期”,宽度:212},
{标题:'PackagePlan',数据索引:'PackagePlan',宽度:212},
{标题:“当前发票金额”,数据索引:“当前发票金额”,宽度:212}
],
插件:[{
p类型:“行扩展器”,
rowBodyTpl:['',
“客户详细信息:
{CustomerName}
{CustomerAddress},{CustomerPhone},{CustomerEmail}

”, “包类型:{PackagePlan}
”, “发票详细信息:

”, ' ', ] }], 宽度:900, 身高:450, renderTo:Ext.get('正在进行中') });

可能吗?

嵌套网格是可能的。以下是Sencha论坛的解决方案:

你差点就成功了。在插件部分,我们将创建一个空div,并将嵌套网格呈现到其中:

plugins: [{
        ptype: "rowexpander",
        rowBodyTpl: ['<div id="SessionInstructionGridRow-{ClientSessionId}" ></div>']    
}],

我告诉你我的问题:我想在创建父网格时创建嵌套网格,而不是在“expandbody”时。我想加载一次数据,部分数据在父网格中使用,部分数据在嵌套网格中使用。也许你对此有什么想法。感谢上面的代码,没有发生额外的数据加载。我正在将父项的记录信息绑定到嵌套网格。expandbody上发生的唯一事情是创建嵌套网格的实例并进行渲染。顺便问一下,“TS.view.client.SessionInstruction”是什么意思?它只是我的视图的名称(嵌套网格的名称)。。为嵌套网格指定适当的名称,以便ExtJS可以实例化它。我可以将其替换为“Ext.gridPanel”吗?
expandbody : function(rowNode,record, expandbody) {
    var targetId = 'SessionInstructionGridRow-' + record.get('ClientSessionId');
    if (Ext.getCmp(targetId + "_grid") == null) {
        var sessionInstructionGrid = Ext.create('TS.view.client.SessionInstruction', {
            renderTo: targetId,
            id: targetId + "_grid"
        });
        rowNode.grid = sessionInstructionGrid;
        sessionInstructionGrid.getEl().swallowEvent(['mouseover', 'mousedown', 'click', 'dblclick', 'onRowFocus']);
        sessionInstructionGrid.fireEvent("bind", sessionInstructionGrid, { ClientSessionId: record.get('ClientSessionId') });
    }
}