Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

José Brandão

[Resolvido] Extjs - Barra de Status Simples no GRID...

Recommended Posts

Boa Tarde Senhores.

 

Estou tentando fazer uma coisa simples, mas ja "perdi" 5 dias tentando fazer =/.

 

Seguinte: no exemplo

 

http://extjs.com/dep.../edit-grid.html

 

Gotaria de colocar uma especie de barra de status em baixo do grid, que me dissese o total de Registros.

 

Total de Registros: 100 (por exemplo).

 

Só isso. Nao estou conseguindo fazer. A barra, eu até consegui colocar, mas o total de registro eu nao estou conseguindo por lá.

 

Alguem me ajuda ai, por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ext.onReady(function(){

var sm = new Ext.grid.CheckboxSelectionModel();
 
 var cm = new Ext.grid.ColumnModel({
 // specify any defaults for each column
 defaults: {
 sortable: true // columns are not sortable by default
 },
 columns: [
			sm,
 {
 id: 'Sigla',
 header: 'Sigla',
 dataIndex: 'Sigla',
 width: 220
 },
 {
 id: 'Matricula',
 header: 'Matricula',
 dataIndex: 'Matricula',
 width: 80
 },
 {
		id: 'IDFATURA',
		header: "IDFATURA",
		dataIndex: 'IDFATURA',
		width: 10,
		hidden:true
 } 
 ]
 });

 // create the Data Store

	ds = new Ext.data.Store({
		proxy: new Ext.data.ScriptTagProxy({
			url:'listar.php?IDTIPOFATURA='+ Ext.get('IDTIPOFATURA').getValue() +''
		}),
		reader: new Ext.data.JsonReader({
			root: 'resultado', 
			totalProperty: 'total',
			id: 'IDFATURA'
		},
			
			[
				{name: 'Sigla', mapping: 'Sigla', type: 'string'}, 
				{name: 'Matricula', mapping: 'Matricula', type: 'string'},
				{name: 'IDFATURA', mapping: 'IDFATURA'}
			]
		)
	});


 // create the editor grid
 var grid = new Ext.grid.GridPanel({
	sm: sm,
 ds: ds,
 cm: cm,
 renderTo: 'editor-grid',
 width: 600,
 height: 200,
 autoExpandColumn: 'Sigla', // column with this id will be expanded
 title: 'Faturas',
 frame: true,
 selModel: new Ext.grid.RowSelectionModel({singleSelect:true}),
 stripeRows: true,
	plugins: checkColumn,
 bbar: new Ext.ux.StatusBar({
				defaultText: 'Total de Registros: xxx', // <-- QUero que aqui concatene com o total de registros.
				id: 'status-id',
				statusAlign: 'right'
		})

 }); 

 Ext.get('IDTIPOFATURA').on('change', function(){
		var valorCombo = Ext.get('IDTIPOFATURA').getValue();
		ds.load({params:{IDTIPOFATURA:valorCombo}});
 	});
	
 ds.load({
 // store loading is asynchronous, use a load listener or callback to handle results
 callback: function(){
		Ext.Msg.show({
 title: 'Store Load Callback',
 msg: 'Deposito de Dados Carregado.'+ds.totalLength, // <- Quando o alert vem, ele exibi o total de registros, atraves de "ds.totalLength"
 modal: false,
 icon: Ext.Msg.INFO,
 buttons: Ext.Msg.OK
 }); 
 }
 });
	
});

===============

 

O grid eh esse ai de cima... O que eu quero é que no rodapé do grid ele mostre "Total de Registros: xxx".

 

Alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Senhores, depois de muito fuçar, eu consegui resover o meu problema, e colocar uma bendita mensagem abaixo do grid: "Total de Registros: xxx".

 

Eu queria algo mais profissional, pois achei que ficou meio gambiarra.

 

Bom, dentro do "ds.load() ... " coloquei o seguinte codigo: Ext.getCmp('barra_status').setText('Total de Registros = '+ds.totalLength);

 

Ficando assim:

 

ds.load({

// store loading is asynchronous, use a load listener or callback to handle results

callback: function(){

Ext.getCmp('barra_status').setText('Total de Registros = '+ds.totalLength);

}

});

 

Sugestões melhores, eu aceito.

 

Moderador, Tópico Encerrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

comentando um pouco o código, se seu projeto for grande evite usar Ext.getCmp, perca um tempinho mas entenda e comece a utilizar a propriedade ref, no final do projeto vai ser bem mais fácil fazer possíveis alterações e seu código vai ficar mais organizado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.