Ir para conteúdo


Foto

[RESOLVIDO] Retornar Valor de Combo em Grid


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

#1 MarcelaGR

MarcelaGR

    Iniciante

  • Membros
  • Pip
  • 7 posts

Postado 21 January 2014 - 07:10

Olá pessoal, estou com o seguinte probleminha:

Possuo uma grid que possui uma combobox como um dos campos.
Esta grid pode ser editada, devendo retornar os dados anteriormente cadastrados (No caso da combo, é retornada a Id do FieldValue). A questão é que não sei como devo fazer para retornar o valor desta combo.
Vou tentar colocar os trechos do código para me explicar melhor:

A CM da grid:
var cmSolicitacoes = new Ext.grid.ColumnModel([
			smSolicitacoes,
			 {id: 'id_unidade', hidden: true, dataIndex: 'id_unidade'}
			,{header: "Sigla", width:30, sortable: true, dataIndex: 'sigla', id:'sigla'}
			,{header: "Unidade Associada", width: 150, sortable: true, dataIndex: 'nome', id:'nome'}
			,{id:'id_perfil', header: 'Perfil', width: 120, dataIndex: 'id_perfil', editor:combo, renderer: Ext.util.Format.comboRenderer(combo)}
			,{id: 'icones', header: "    ", width: 50, sortable: false, dataIndex: 'icones', renderer: rendSetasUnidade}	
		]);

o Store que retorna os dados da Grid
var dsSolicitacoes = new Ext.data.JsonStore({
			waitMsg:'Carregando...',
			url:'<?php echo $this->baseUrl;?>/unidades/todasunidadesedit/id/<?php if($this->escape($this->action) != 'adicionar'){echo $this->usuarios->getIdUsuario();} ?>',
			root:'solicitacoes',
			autoLoad:true,
			fields:['id_unidade', 'sigla', 'nome'],
			totalProperty:'TOTAL',
			remoteSort:true
		});

e por fim, a Store com os dados da combo:
var fieldsPerfil = new Ext.data.Record.create([			
			 {name:'id_perfil',mapping: 'id_perfil'}
			,{name:'descricao',mapping: 'descricao'}
		]);
	
		var storePerfil = new Ext.data.Store({
			proxy: new Ext.data.HttpProxy({
				url: '<?php echo $this->baseUrl;?>/perfil/todosperfils/'
			})
			,reader: new Ext.data.JsonReader({
				id:'id_perfil'
				,root:'perfil'
			}, fieldsPerfil)
			,sortInfo: {field: 'descricao', direction: 'ASC'},
		});
		storePerfil.load();


Alguém poderia me dar uma luz?

#2 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3497 posts
  • LocationBelo Horizonte

Postado 21 January 2014 - 08:14

Olá MarcelaGR, seja bem vinda ao nosso fórum, espero que possamos lhe ajudar em suas dúvidas, sobre esta:

Esta grid pode ser editada, devendo retornar os dados anteriormente cadastrados (No caso da combo, é retornada a Id do FieldValue). A questão é que não sei como devo fazer para retornar o valor desta combo.

Pelo que demonstra ele retorna o "Id", pois o field informado na propriedade valueField é referente ao "Id", desta forma é só informar o campo que vc deseja que seja o valor retornado tipo o campo "sigla". Assim será retornado o valor referente a essa propriedade.
Veja se lhe ajuda.

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


#3 MarcelaGR

MarcelaGR

    Iniciante

  • Membros
  • Pip
  • 7 posts

Postado 21 January 2014 - 08:25

Olá Legolas.
Realmente alterei o dataIndex da para passar o que eu preciso.
De fato consigo passar o resultado corretamente com esta mudança, mas o valor não aparece inserido na grid. Fica em branco, como se não tivesse sido preenchido.

#4 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3497 posts
  • LocationBelo Horizonte

Postado 21 January 2014 - 08:35

De fato consigo passar o resultado corretamente com esta mudança, mas o valor não aparece inserido na grid. Fica em branco, como se não tivesse sido preenchido.

MarcelaGR, esse método "Ext.util.Format.comboRenderer" que executa essa sua lógica de resgatar o valor através do Store do combo recebido que deve estar fazendo isso enquanto esse é carregado  (pelo menos é o q deduzo).
Como teste tenta ver se consegue colocar um delay para chamada da função "Ext.util.Format.comboRenderer" vc pode utilizar o método defer para simular isso.
Se tdo der certo aí vc terás que pensar em uma forma de como pode fazer essa lógica ao carregar os dados da combo.

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


#5 MarcelaGR

MarcelaGR

    Iniciante

  • Membros
  • Pip
  • 7 posts

Postado 21 January 2014 - 08:43

Fiz um teste comentando o Ext.util.Format.comboRenderer e realmente acaba saindo tudo certinho...
Acho que terei de repensar minha lógica então =)

Mas muito obrigada por toda a ajuda, Legolas =)

#6 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3497 posts
  • LocationBelo Horizonte

Postado 21 January 2014 - 09:27

Fiz um teste comentando o Ext.util.Format.comboRenderer e realmente acaba saindo tudo certinho...
Acho que terei de repensar minha lógica então =)

Concordo.

Mas muito obrigada por toda a ajuda, Legolas =)

Por nada precisando é só postar. Faz só um favor se a sua dúvida foi sanada coloque este como RESOLVIDO.

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


#7 MarcelaGR

MarcelaGR

    Iniciante

  • Membros
  • Pip
  • 7 posts

Postado 21 January 2014 - 10:33

Faz só um favor se a sua dúvida foi sanada coloque este como RESOLVIDO.


Colocado! =)




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

0 membros, 0 visitantes, 0 membros anônimos