Ir para conteúdo


Foto

Como customizar o displayField do Combobox

combo displayField customizar

Melhor Resposta ratamiette , 15 January 2016 - 10:42

Olá Marcelo Augusto,

 

Tudo bem? Não sei se é isso que você precisa, pois você não deu muito detalhe do que acontece.  Tenho um combo de endereço, no qual eu exibo: rua, numero - bairro - cidade

 

Então eu utilizo da seguinte forma: 

 

tpl: Ext.create('Ext.XTemplate',
    '<tpl for=".">',
        '<div class="x-boundlist-item">',
            '{logradouro},{numero} - {bairro} - {idCidadecidade}',
        '</div>',
    '</tpl>'
),
displayTpl: Ext.create('Ext.XTemplate',
    '<tpl for=".">',
        '{logradouro},{numero} - {bairro} - {idCidadecidade}',
    '</tpl>'
)

* Se você somente colocar o tpl, só vai ser exibido desta forma {logradouro},{numero} - {bairro} - {idCidadecidade} quando você clica no combo, após a seleção, ele só exibe uma propriedade, no meu caso somente o logradouro. Então uso o displayTpl para continuar exibindo da forma que quero após a seleção.

 

Segue o link no Sencha Fiddle. Experimente comentar o displayField pra você entender o que estou falando. https://fiddle.sencha.com/#fiddle/13tt

 

 

Agora se o seu erro for outro, dê mais detalhes. (Se possível coloque seu código pra rodar no Sencha Fiddle, fica mais fácil compreender o problema)

 

 

Até mais!

Visualizar todo o conteúdo do post


  • Por favor, faça o login para responder
11 respostas neste tópico

#1 Marcelo Augusto

Marcelo Augusto

    Member Avançado

  • Membros
  • PipPipPip
  • 232 posts
  • LocationCaicó, Rio Grande do Norte

Postado 15 January 2016 - 10:23

Olá, pessoal

 

Como posso customizar o displayField do Combobox para que ele me mostre mais de uma propriedade da minha store?

Achei um post (de 2008) no fórum da Senha que dava a seguinte solução:

tpl: new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item" >{denominacao} | {tombo}</div></tpl>') 

Porém, quando o combo era carregado, não dava pra selecionar item algum. 

 

Agradeço a ajuda desde já..

 



#2 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 15 January 2016 - 10:42   Melhor Resposta

Olá Marcelo Augusto,

 

Tudo bem? Não sei se é isso que você precisa, pois você não deu muito detalhe do que acontece.  Tenho um combo de endereço, no qual eu exibo: rua, numero - bairro - cidade

 

Então eu utilizo da seguinte forma: 

 

tpl: Ext.create('Ext.XTemplate',
    '<tpl for=".">',
        '<div class="x-boundlist-item">',
            '{logradouro},{numero} - {bairro} - {idCidadecidade}',
        '</div>',
    '</tpl>'
),
displayTpl: Ext.create('Ext.XTemplate',
    '<tpl for=".">',
        '{logradouro},{numero} - {bairro} - {idCidadecidade}',
    '</tpl>'
)

* Se você somente colocar o tpl, só vai ser exibido desta forma {logradouro},{numero} - {bairro} - {idCidadecidade} quando você clica no combo, após a seleção, ele só exibe uma propriedade, no meu caso somente o logradouro. Então uso o displayTpl para continuar exibindo da forma que quero após a seleção.

 

Segue o link no Sencha Fiddle. Experimente comentar o displayField pra você entender o que estou falando. https://fiddle.sencha.com/#fiddle/13tt

 

 

Agora se o seu erro for outro, dê mais detalhes. (Se possível coloque seu código pra rodar no Sencha Fiddle, fica mais fácil compreender o problema)

 

 

Até mais!


  • Wemerson Januario e Legolas curtiram isso
ratamiette

#3 Marcelo Augusto

Marcelo Augusto

    Member Avançado

  • Membros
  • PipPipPip
  • 232 posts
  • LocationCaicó, Rio Grande do Norte

Postado 18 January 2016 - 07:35

Olá, ratamiette, 

 

A solução que você deu era exatamente o que eu queria, só pra mostrar mais de uma propriedade no combo, no meu caso, o tombo de um patrimônio e o seu nome.

Muito obrigado pela ajuda!



#4 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 18 January 2016 - 08:05

Bom dia Marcelo Augusto,

 

Que bom que deu certo! Precisando estamos aí!

 

Até mais!  ^-^


ratamiette

#5 Marcelo Augusto

Marcelo Augusto

    Member Avançado

  • Membros
  • PipPipPip
  • 232 posts
  • LocationCaicó, Rio Grande do Norte

Postado 13 June 2016 - 10:33

Bom dia, ratamiette

 

Tive um problema com essa solução hoje em que ao carregar os dados de um record no form, o combo que tinha essa customização não mostrou os valores corretamente. Só o que ficou visível no combo foram os hífens. Veja como está o código abaixo:

{
	xtype: 'combo',
	name: 'codigo_unidade',
	fieldLabel: 'Unidade',
	displayField: 'nomeUnidade',														
	displayTpl: Ext.create('Ext.XTemplate',
	            '<tpl for=".">',		                            
			'{codigo} - {nomeUnidade}',
	            '</tpl>'), 
	tpl: Ext.create('Ext.XTemplate',
	            '<tpl for=".">',
	                '<div class="x-boundlist-item">',
	                    '{codigo} - {nomeUnidade}',
	                '</div>',
		    '</tpl>'),
	valueField: 'id',
	queryModel: 'local',
	store: 'unidade.Unidades'
},

Agradeço a ajuda desde já..


  • ratamiette curtiu isso

#6 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 13 June 2016 - 14:26

Boa tarde Marcelo,

 

Tudo bem? não tive problema nenhum em utilizar dessa forma.

 

Uma coisa que observei no seu código, foi o queryModel: 'local' - troque para queryMode: 'local' e veja se funciona! 

 

Caso o erro persista, console sua store e veja como estão os dados na store, se foram carregados corretamente...

 

Abçs.
 


ratamiette

#7 Marcelo Augusto

Marcelo Augusto

    Member Avançado

  • Membros
  • PipPipPip
  • 232 posts
  • LocationCaicó, Rio Grande do Norte

Postado 14 June 2016 - 08:15

Olá, ratamiette, bom dia

 

Nem tinha percebido esse erro de sintaxe, mas mesmo consertando, continuou da mesma forma. Os dados da store estão sendo carregados corretamente..



#8 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 14 June 2016 - 09:15

Bom dia Marcelo,

 

Como você está setando o record no form? será que no momento que você está setando  a store já está carregada?

 

Posta o código completo aí...


ratamiette

#9 Marcelo Augusto

Marcelo Augusto

    Member Avançado

  • Membros
  • PipPipPip
  • 232 posts
  • LocationCaicó, Rio Grande do Norte

Postado 14 June 2016 - 10:28

ratamiette, a store está carregada sim, vi pelo console. 

Esse é o código em que eu faço o load dos registros no form.

onButtonEditarPatrimonio: function(button, e, options) {
		var grid = button.up('panel').down('grid');
		record = grid.getSelectionModel().getSelection();		
		if(record[0]) {
			var editWindow = this.getFormPatrimonio();
			//var editWindow = this.getPatrimonioFormPatrimonioView();
			editWindow.down('form').loadRecord(record[0]);

			if(record[0].get('imagem')) {
				var img = editWindow.down('image');
				img.setSrc('resources/patrimonioImages/'+record[0].get('imagem'));
			}
			editWindow.setTitle(record[0].get('denominacao'));
			editWindow.show();
		}
	},


#10 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 15 June 2016 - 13:49

Posta aí a definição da sua store e do model se houver.

 

O valueField do seu combo é o 'id' ... você definiu o type dele na Model?

 

Se você consolar o record selecionado na sua grid, veja se o valor do campo 'codigo_unidade' está com o mesmo type do id.. (se você definiu o 'id' no Model como int, o valor do campo no record deve ser int)

 

Já aconteceu comigo do meu campo retornar uma string , e no meu model estar int, aí não setou o valor no combo.

 

Se não for isso, infelizmente não consigo te ajudar.  Só debugando sua aplicação mesmo pra ver o que está acontecendo. 

 

Abçs


  • Marcelo Augusto curtiu isso
ratamiette

#11 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3497 posts
  • LocationBelo Horizonte

Postado 16 June 2016 - 08:19

E ai galera, só me intrometendo um pouco.

 

Esse lance de realizar um loadRecord e não popular o ComboBox, é uma dúvida recorrente de muitos membros aqui do fórum, alguns já até acharam algumas soluções para isso.

 

Veja se a thread [RESOLVIDO] Form - Atualizar - Combobox lhe ajuda.


  • ratamiette e Marcelo Augusto curtiram isso

"A verdadeira vitória não é derrotar alguém forte... É ser capaz de proteger alguém que você ama de verdade!" (Maito Dai)


#12 Marcelo Augusto

Marcelo Augusto

    Member Avançado

  • Membros
  • PipPipPip
  • 232 posts
  • LocationCaicó, Rio Grande do Norte

Postado 17 June 2016 - 15:15

Olá, ratamiette e Legolas

 

Consegui resolver o problema. o Model do meu patrimônio tava tudo ok, os campos setados com integer. No entanto, os models dos outros objetos não tinham o id especificados como integer. Foi só especificar e resolveu.

 

Muito obrigado pela ajuda!


  • ratamiette curtiu isso





Tópicos que também usam as tags combo, displayField, customizar:

0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos