Ir para conteúdo


Foto

problemas com grid


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

#1 doug.java

doug.java

    Iniciante

  • Membros
  • Pip
  • 8 posts

Postado 17 October 2016 - 09:21

Bom dia a todos

 

Nao tenho por costume recorrer a ajuda de voces toda hora mas ja estou apanhando a uma semana pesquisando e nao consigo resolver.

 

tenho este json que vem do java e parece normal

{"data":[{"id":1,

             "usuario":"usuariox",

             "senha":"123",

             "ativo":0,

             "pessoa":{"id":1,

                             "email":"[email protected]<script data-cfhash='f9e31' type="text/javascript">/* */</script>",

                             "nome":"Ursuario",

                             "dt_cad":"2016-09-28"}}],"total":1,"success":true}

 

sendo este um hasone: usuario pessoa

 

estes sao do grid

 

columns: [{
    header: "Id",
    width: 60,
    dataIndex: "id"
    },{
    header: "Nome",
     width: 160,
     flex:1,
     dataIndex: 'nome', // para exibir o nome e o email no grid tive que recorrer a renderer na linha de baixo
     renderer: function (val, meta, record) {
            var obj = record.data.pessoa.nome;
            return obj;
            }
    },{
     header: "Usuario",
     width: 160,
     flex:1,
     dataIndex: 'usuario'
   },{
     header: "e-mail",
     width: 170,
     flex:1,
     dataIndex: 'email',
     renderer: function(val, meta, record){
          var obj = record.data.pessoa.email;
          return obj;
            }
   },{
    header: "Ativo",
    width: 60,
    dataIndex: "ativo",
    renderer: formatBoolean 
}],

 

mas quando tento carregar um form para alteracao este nao exibe estes campos que uso renderer.

 

espero que estas informaçoes sejam suficientes procurei resumir mas caso alguem precise de mais informaçoes e so dizer

 

antecipadamente agradeço

 

 

 

 

 



#2 Wemerson Januario

Wemerson Januario

    Administrador Ext JS Brasil

  • Administrators
  • 837 posts
  • LocationGoiânia - GO

Postado 18 October 2016 - 20:53

Olá!

 

Você pode fazer isso criando uma field com convert no model pra emular um join ou traz no seu json todos dados na raiz ao invés de trazer aninhado assim.

 

Eu particularmente não retorno json assim com relacionamento. Trago sempre um json único com todas colunas da entidade principal e as que pertence a um relacionamento HasOne faço join e trago as colunas que preciso, sendo assim fica mais simples, e menos código pra programar, criação de  renderers e fields com converts e tals.

 

Espero ter ajudado.


Wemerson Januario
http://wemersonjanuario.com.br
Twitter: @januariocoder

 

Treinamento e Consultoria Ext JS. Qualifique-se já!


#3 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3496 posts
  • LocationBelo Horizonte

Postado 23 October 2016 - 20:00

Fala meu caros,

 

Então só entrando no assunto ai, @doug.java o caso que está acontecendo é que sua record não possui dados para o field "nome", pois o seu Model tem que os fields como está o modelo dos dados que vem do seu Server.

 

Sendo assim, a sugestão do @Wemerson pode lhe ajudar, pois desta forma a sua record vai ter o dado.

 

Outra dica seria mapear os dados relacionados no seu Model utilizando a propriedade mapping, assim você teria mais ou menos assim no meu Model.

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'usuario', type: 'string'}, // Não precisa ser mapeada, pois está na raiz do objeto.
        {name: 'nome',    type: 'string', mapping: 'pessoa.nome'},
        {name: 'email',   type: 'string', mapping: 'pessoa.email'}
    ]
});

Desta forma como os dados já estão no JSON então é só mapear eles.

 

Espero que lhe ajude.


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





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

0 membros, 0 visitantes, 0 membros anônimos