[color=red]*EDIT: o problema de nao aparecer nem os resultados foi resolvido e esta descrito na proxima resposta. Mas o problema de nao aparecer o header/cabeçalho das colunas ainda persiste ![/color]
Olá pessoal,
Estou utilizando o ExtJS para montar grids em um sistema java + struts 1 ( :( ); mas nao estou conseguindo achar solução para o problema atual.
A grid chega a aparecer mas sem os resultados. O json que estou enviando para a pagina está correto.
A implementação da grid é baseada no gridFilter.js dos exemplos do Ext.
Na pagina a unica coisa que tem é o div: <div id="grid-empresa"></div>"
Meu código java acho que nao precisa né ?
Somente informar que o json a seguir está sendo enviado pro request assim:
"request.setAttribute( Constantes.REQUEST_VAR_JSON, strJson );"
json no request:
{"total":"1","data":[{"empresaId":1,"nome":"nomeeeee","nomeFantasia":"nomeeeeeFannnnntasiaaaa"}]}
/*
* Ext JS Library 2.2
* Copyright(c) 2006-2008, Ext JS, LLC.
* [email removido]
*
* http://extjs.com/license
*/
Ext.onReady(function(){
/** Seta o caminho das imagens **/
Ext.menu.RangeMenu.prototype.icons = {
gt: path+'/imagens/ext/greater_then.png',
lt: path+'/imagens/ext/less_then.png',
eq: path+'/imagens/ext/equals.png'
};
Ext.grid.filter.StringFilter.prototype.icon = path+'/imagens/ext/find.png';
/** Seta a implementação padrão do Provider que salva os estados via cookie **/
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
/** Leitor para o Json gerado a cada requisição do Proxy **/
var dsReader = new Ext.data.JsonReader({
root: 'data',
totalProperty: 'total'
},[
{name:'empresaId'},
{name:'nome'},
{name:'nomeFantasia'}
]
);
var httpProxy = new Ext.data.HttpProxy({
url: path+'/gerenciaEmpresa.do?acao=retrieveGrid'
});
var groupingStore = new Ext.data.GroupingStore({
proxy: httpProxy,
reader: dsReader,
remoteSort: true,
sortInfo:{field: 'empresaId', direction: "ASC"}
});
var pagingToolbar = new Ext.PagingToolbar({
store: groupingStore,
pageSize: 15,
plugins: filters,
displayInfo: true,
displayMsg: 'Mostrando Registros {0} - {1} de {2}',
emptyMsg: "Nenhum registro para mostrar",
items:[
'-',
{text: 'Limpar Filtros', handler:function(){filters.clearFilters();}}
]
});
var filters = new Ext.grid.GridFilters({
filters:[
{type: 'numeric', dataIndex: 'empresaId'},
{type: 'string', dataIndex: 'nome'},
{type: 'string', dataIndex: 'nomeFantasia'}
]});
var columnModel = new Ext.grid.ColumnModel([
{dataIndex: 'empresaId', header: 'ID', width: 70},
{dataIndex: 'nome', header: 'Nome', width: 120},
{dataIndex: 'nomeFantasia', header: 'Nome Fantasia', width: 130}
]);
columnModel.defaultSortable = true;
var grid = new Ext.grid.GridPanel({
id: 'gridEmpresa',
title: 'Empresas Cadastradas',
ds: groupingStore,
cm: columnModel,
enableColLock: false,
loadMask: true,
plugins: filters,
height:300,
width:900,
el: 'grid-empresa',
bbar: pagingToolbar,
tbar:[]
});
// grid.on('rowdblclick',function(){
// var codigo = grid.getSelectionModel().getSelected().get('empresaId');
// location.href = path+"/pesquisarEmpresa.do?acao=carregar&impresaId="+codigo;
// });
//Limpa os filtros da grid
filters.clearFilters();
grid.render();
groupingStore.load({params:{start: 0, limit: 15}});
});
Como aparece na tela:
[img]http://i26.photobucket.com/albums/c108/romuloff/tela-empresas.jpg[/img]

