Ir para conteúdo


Foto

Passar parâmetros para um Panel via Grid


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

#1 yuripiratello

yuripiratello

    Iniciante

  • Membros
  • Pip
  • 6 posts
  • LocationSão Paulo

Postado 05 February 2015 - 15:54

Pessoal, olá.

Comecei com ExtJS faz pouco tempo e estou com uma dúvida:

Eu tenho um grid com um botão, ao clicar nele abro uma tab nova e dentro dessa tab eu precisava pegar os dados da row ou pelo menos o ID do registro da minha grid.

No Controller do meu grid eu chamo a abertura da nova aba:
openDetailClick: function(btn, naosei){
        var rec = btn.getWidgetRecord();
        MyApp.Utils.newTab('distribuidor-' + rec.get('id'), rec.get('id'), 'distribuidoresdetalhepanel', {id: rec.get('id')});
    }

A aba é criada através de uma função estatica (que reutilizarei para o menu e outras opções da aplicação como se fosse a documentação do ExtJS 5.1.0 - http://docs.sencha.c.../5.1.0-apidocs/):
Ext.define('MyApp.Utils', {
    statics: {
        newTab: function (tabId, title, xtypetab, params, icon) {
            var tabCenter = Ext.ComponentQuery.query('#tabs')[0];
            var newTab = tabCenter.items.findBy(
                function (tab) {
                    return tab.tabId === tabId;
                }
            );
            if (!newTab) {
                newTab = tabCenter.add({
                    closable: true,
                    //xtype: record.get('componenteAliasName'),
                    //xtype: record.get('idxtypeview'),
                    iconCls: icon,
                    title: title,
                    items: {
                        xtype: xtypetab
                    }
                });
            }
            tabCenter.setActiveTab(newTab);
        }
    }
});

E agora não sei como pegar aquele 'addparams' que passo na construção da aba.

Ext.define("MyApp.view.distribuidores.Detalhe",{
    extend: "Ext.panel.Panel",

    controller: "distribuidoresdetalhe",
    alias: 'distribuidoresdetalhe',
    xtype: 'distribuidoresdetalhepanel',

    items: [
        {
            xtype:'form',
            items:[
                {
                    xtype: 'label',
                    text: addparams.id
                }
            ]
        }
    ]
});


Como disse, comecei a pouco tempo, os dados estão todos mockados, nada dinamico, se eu estiver fazendo algo errado, por favor me avisem! =]

Obrigado!

PS: Se for fácil por favor só me falem o que procurar para estudar, não tenho preguiça! =D

#2 Loiane

Loiane

    Member Avançado

  • Expert User
  • 1013 posts
  • LocationSão Paulo - SP

Postado 24 February 2015 - 16:40

Vc precisa passar pro construtor do seu componente os parametros que vc quer.

 

{

     xtype: 'meuComponente',

     params: addParams

}

 

Ou via Ext.create.

 

Depois vc pode manipular esses dados no seu componente. A maneira mais segura de fazer isso seria usando o próprio construtor ou o initConfig. Segue um exemplo: https://github.com/l...ata/BaseGrid.js


  • yuripiratello curtiu isso

Autora dos livros:

Mastering Ext JS 5 http://bit.ly/1HWeHXh
Mastering Ext JS 4 http://bit.ly/14NZkxg

Ext JS 4: First Look http://bit.ly/o1IP1w
Sencha Architect http://bit.ly/19FVBGs
Curso ExtJS 4 Gratuito http://bit.ly/s5S0Oj (conceitos valem pro Ext 5 e 6 tb)


#3 yuripiratello

yuripiratello

    Iniciante

  • Membros
  • Pip
  • 6 posts
  • LocationSão Paulo

Postado 27 February 2015 - 10:45

Muito obrigado @Loiane !

 

Funcionou! Eu estava passando o parâmetro no construtor errado!






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

0 membros, 0 visitantes, 0 membros anônimos