Senhores,O caso de uso era simples: colocar um Grid dentro de um Accordion.Criei o grupo do grid, no modo tradicional: // Variavl "Modelo de coluna", cria as colunas do grid. var clModel = new Ext.grid.ColumnModel(this.gridColumns); // Variavel "Modelo de numero de registros" cria as linhas do grid de acordo com a quantidade de registros var rsModel = new Ext.grid.RowSelectionModel(this.gridSelection); rsModel.addListener('rowselect', function(obj, rowIndex, record){ fmPanel.getForm().loadRecord(record); formataPopups(record); }, this); // Variavel "Guardadora de dados do banco", esta variavel sera colocada dentro do rsModel para popular o grid var dtStoree = new Ext.data.Store({ url: '<<local onde esta o repositorio>>', reader: new Ext.data.JsonReader({ successProperty: 'success', root: 'data', totalProperty: 'total' }, this.gridData) }); dtStoree.addListener('load', function(store, records, options){ initView(); }, this); dtStoree.addListener('beforeload', function(store, records, options){ var instruction = "dtStore.baseParams = { "; var cont = 0; if(tela.filterField1 != null){ cont++; instruction += "\"" + tela.filterField1 + "\" : \"" + Ext.getCmp(tela.filterField1).getValue().split(' - ')[0] + "\","; } if(tela.filterField2 != null){ cont++; instruction += "\"" + tela.filterField2 + "\" : \"" + Ext.getCmp(tela.filterField2).getValue().split(' - ')[0] + "\","; } if(tela.filterField3 != null){ cont++; instruction += "\"" + tela.filterField3 + "\" : \"" + Ext.getCmp(tela.filterField3).getValue().split(' - ')[0] + "\","; } instruction += " }" if(cont>0){ eval(instruction); } }, this); // Variavel de montagem do painel do grid. Essa variavel junta todos os componentes // e cria uma referencia ao grid pronto var gdPanel = new Ext.grid.GridPanel({ layout: 'fit', autoWidth: true, height: 500, anchor: '100% 100%', autoScroll: true, // trecho a seguir redesenha o grid apos a pesquisa dos dados view: new Ext.grid.GridView({ forceFit:true }), cm: clModel, sm: rsModel, store: dtStoree, bbar: new Ext.PagingToolbar({ pageSize: this.gridSize, store: dtStoree, displayInfo: true, displayMsg: 'Mostrando registros {0} - {1} de {2}', emptyMsg: "Nenhum registro para mostrar", }) });Logo apos, coloquei a variavel gdPanel dentro do construtor do Accordion:Aqui e importante mencionar que fiz algo que nao encontrei em nenhum exemplo por ai:Ajuste de Grid dentro de Accordion em EXTJS.Ao tentar arrumar o Grid dentro do Accordion, comecei tentando pelo proprio Grid, afinal, era este objeto que nao tinha o comportamento que eu desejava.Porem, por mais que eu tratasse o Grid, nao havia como faze-lo aparecer completo, com scroll, de forma satisfatoria para o usuario final.Entao, suspeitei que o objeto do Accordion estivesse "espremendo" o Grid, nao fornecendo lugar adequado para sua apresentacao.Mas o problema nao foi no objeto do Accordion. Embora este tenha grupo "defaults", indicado para o conteudo ser extendido por todos os items, o layout e controlado diretamente dentro de cada item do accordion.O codigo do accordion ficou assim: // Variavel de montagem do painel dde Accordion's. Essa variavel junta todos os componentes // e cria uma referencia ao accordion pronto var accordion = new Ext.Panel({ title: 'Accordion Layout', layout:'accordion', defaults: { // Aplicado para cada painel bodyStyle: 'padding:15px' }, layoutConfig: { // Configuracoes especificas do Grupo Accordion vao aqui titleCollapse: false, animate: true, autoWidth: true, autoHeight: 600 }, items: [{ title: 'Panel 1', autoScroll: true, autoWidth: true, autoHeight: true, items: gdPanel },{ title: 'Panel 2', html: '<p>Panel content!</p>' },{ title: 'Panel 3', html: '<p>Panel content!</p>' }] });Por fim, utilizei o objeto do accordion