Ir para conteúdo


Foto

Bind multiselector a textfield (two-way)


  • Por favor, faça o login para responder
Não há respostas para este tópico

#1 antonio.vasconcelos

antonio.vasconcelos

    Iniciante

  • Membros
  • Pip
  • 1 posts

Postado 21 September 2015 - 06:01

Bom dia,

 

gostava de saber se é possivel fazer o bind de um multiselector para um textfield no modo two-way.

Neste momento tenho um multiselector com search onde faço uma pesquisa por gestores e os selecionados surgem na grid do multiselector.

Arquivo anexado  Capturar1.PNG   21.17K   0 Downloads

 items: [
        {
            xtype: 'multiselector',
            title: 'Gestores selecionados',

            fieldName: 'nome',

            viewConfig: {
                deferEmptyText: false,
                emptyText: 'Nenhum selecionado'
            },

            search: {
                field: 'nome',

                store: {
                    fields: [
                        {name: 'codigo', type: 'string'},
                        {name: 'nome', type: 'string'}
                    ],
                    proxy: {
                        type: "ajax",
                        url: "getlstgestorcli.action",
                        reader: {
                            type: "json",
                            rootProperty: "data"
                        }
                    }
                }
            }
        }
    ],

Em seguida tenho um botão FILTRAR, que vai criar uma lista separada por ";" no campo textfield da VIEW.

Arquivo anexado  Capturar2.PNG   2.53K   0 Downloads

 

Essa passagem é feita no CONTROLLER com o seguinte codigo:

onButtonClickFiltraGestores: function(elem, e, eOpts) {
        //var sel = Ext.getCmp('multigestorescli').getSelectionModel().getStore(),
        //var sel = elem.getSelectionModel().getStore(),
        var sel = elem.up('window').down('multiselector').getSelectionModel().getStore(),
            gc = Ext.ComponentQuery.query('textfield#fieldGestores')[0],
            gch = Ext.ComponentQuery.query('hiddenfield#fieldGestoresHidden')[0],
            arr_nomes = [],
            arr_codigos = [];

        //qtos elecionados
        var c=0;
        sel.each(function(record, idx){
            var nome = record.get('nome');
            var codigo = record.get('codigo');
            arr_nomes.push(nome);
            arr_codigos.push(codigo);
            c++;
        });

        if(c>0) {
            gc.setValue(arr_nomes);
            gch.setValue(arr_codigos);
        } else {
            gc.setValue('<Todos>');
            gch.setValue('');
        }

        //Fecha view "selges" no final
        //var w = Ext.ComponentQuery.query('selges')[0].destroy();
        var w = elem.up('window');
        //w.hide();
        w.destroy();
    }

A minha dificuldade é mesmo, quando voltar a abrir o multiselector, mediante os gestores que estão na textfield, voltar a colocar eles na grid e no search aparecerem como SELECIONADOS.

 

Alguém pode dar uma ajuda?

 

Obrigado

 






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

0 membros, 0 visitantes, 0 membros anônimos