java da seguinte forma:<script type="text/javascript"> Ext.Loader.setConfig({ enabled: true }); Ext.Loader.setPath('Ext.ux', '../ux'); Ext.require([ 'Ext.grid.*', 'Ext.data.*',]); Ext.onReady(function () { Ext.define('Book', { extend: 'Ext.data.Model', fields: [ {name: 'Nome', mapping: 'Nome' }, 'Grupo', 'Acoes' ] }); var store = Ext.create('Ext.data.Store', { model: 'Book', autoLoad: true, //inserindo propriedades de agrupamento------------ groupField: 'Grupo', //------------------------------------------------- proxy: { type: 'ajax', url: "@Url.Content("~/Listagem/_ListaGruposUsuariosXml/")?Conf=@ViewBag.Conf", reader: { type: 'xml', record: 'Agrupamento', idProperty: 'id' } } }); var groupingFeature = Ext.create('Ext.grid.feature.Grouping', { groupHeaderTpl: 'Nome do Grupo: {name} ({rows.length} Usuarios Cadastrado{[values.rows.length > 1 ? "s" : ""]})', hideGroupedHeader: false, startCollapsed: true }); // create the grid var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ { text: "Nome", width: 250, dataIndex: 'Nome', sortable: true }, { text: "Nome do Grupo de usuarios", width: 250, dataIndex: 'Grupo', sortable: true }, { text: "Acoes Possiveis", width: 250, dataIndex: 'Acoes', sortable: false }, ], //funcoes extras--------------------------------------------------------------------- collapsible: true, animCollapse: true, iconCls: 'icon-grid', frame: true, resizable: true, title: "Grupos de usuarios", //---------------------------------------------------------------------------------- //aqui comeca o agrupamento---------------------------------------------------------- features: [groupingFeature], //----------------------------------------------------------------------------------- renderTo: 'Grid', width: 900, height: 700 }); });</script> Bom primeiramente, devo me desculpar pois eu fiz muito "em cima do exemplo" do site do Ext JS, detesto manter os nomes das variaveis, mas como o proposito aqui e apenas um exemplo entao acabei deixando.Alguns detalhes merecem um pouco de atencao como a linha:Ext.Loader.setPath('Ext.ux', '../ux');Aqui o framework diz onde estao seus outros arquivos de apoio e o motivo que eu deixei a organizacao dele sem mexer, apenas para melhorar a compreensao.na linhaurl: "@Url.Content("~/Listagem/_ListaGruposUsuariosXml/")?Conf=@ViewBag.Conf",chamamos o ajax que carregara a grid com o xml de dados, observe o uso do helper Url.Content .o Xml que eu gerei ficou mais ou menos assim<Grupos> <Agrupamento> <id>77</id> <Nome>Theo Teste</Nome> <Grupo>Grupo Limitado</Grupo> <Acoes>&lt;a href='/Iniciais/EditaDireitos/77?Grupo=139'&gt;Gerenciar Direitos Especiais&lt;/a&gt;</Acoes> </Agrupamento></Grupos> nas linhas reader: { type: 'xml', record: 'Agrupamento', idProperty: 'id' }Indicamos que sera enviado um xml, ja que o framework suporta outros formatos, informamos que as linhas estao na chave Agrupamento, e o Id de cada registro e o idnas linhas: Ext.onReady(function () { Ext.define('Book', { extend: 'Ext.data.Model', fields: [ {name: 'Nome', mapping: 'Nome' }, 'Grupo', 'Acoes' ]Definimos o nome das colunas, preste atencao que somente a primeira precisa ser mapeada, sendo que as outras ja vem na sequencia apenas com os nomesnas linhas: var groupingFeature = Ext.create('Ext.grid.feature.Grouping', { groupHeaderTpl: 'Nome do Grupo: {name} ({rows.length} Usuarios Cadastrados{[values.rows.length > 1 ? "s" : ""]})', hideGroupedHeader: false, startCollapsed: true });criamos a grid com o agrupamento sendo que antes do nome do agrupamento vira a string "Nome do Grupo:" e o proprio framework faz a conta de linhas em({rows.length} Usuarios Cadastrados{[values.rows.length > 1 ? "s" : ""]})para saber quantos usuarios estao cadastrados nesse agrupamento.na linha:startCollapsed: truediz que os registros ja vem "fechados" mostrando apenas os agrupamentos.nas linhas: var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ { text: "Nome", width: 250, dataIndex: 'Nome', sortable: true }, { text: "Nome do Grupo de usuarios", width: 250, dataIndex: 'Grupo', sortable: true }, { text: "Acoes Possiveis", width: 250, dataIndex: 'Acoes', sortable: false }, ],Informamos o framework que a chave "Nome" no Xml linka com a Coluna "Nome", sua largura em px, e se ele pode