[RESOLVIDO]Como setar o index da combobox no extjs?

7 respostas
A

ola pessoal.
no extjs ta complicado pra mim manipular a combobox , o proble é o seguinte:
tenho um cadastro que possui uma combo que possui itens que são de outro cadastro por exe:
cadastro de funcionario tem uma combo para escolher uma empresa!
ao cadastrar um novo funcionario e escolher qual empresa que ele é quando dou um

Ext.getCmp("cboEmpresa").getValue()

o valor que vem é o id da empresa. até ai tudo bem grava direitinho.

ao editar este funcionario tenho que pegar o valor gravado no banco e joga rpara a combo posicionando-a

tentei

var registro = retornoGrid.getSelectionModel().getSelected();
Ext.getCmp("cboEmpresa").setValue(registro.data.nomeEmpresa);

quando tento pegar o seu valor novamente…

Ext.getCmp("cboEmpresa").getValue()

ele me retorna o nome da empresa.

se eu neste mesmo momento abrir a combo e posicionar nesta mesma empresa e der um

Ext.getCmp("cboEmpresa").getValue()

ai vem o id da combo.

como pegar realmente o valor posicionado na combo do ext?

7 Respostas

M

eu acho q é algo do tipo:

Ext.getCmp("cboEmpresa").hiddenField.value
A

não funcionou com o apenas a combo basica do ext(sem herdar) para funcionar tenho que acrecentar algo como esta?

Ext.override(Ext.form.ComboBox, {

você precisou disso tbm?

Ext.override(Ext.form.ComboBox, {
    setValue : function(v){
        var text = v;
        if(this.valueField){
            this.store.clearFilter();
            var r = this.findRecord(this.valueField, v);
            if(r){
                text = r.data[this.displayField];
            }else if(this.valueNotFoundText !== undefined){
                text = this.valueNotFoundText;
            }
        }
        this.lastSelectionText = text;
        if(this.hiddenField){
            this.hiddenField.value = v;
        }
        Ext.form.ComboBox.superclass.setValue.call(this, text);
        this.value = v;
    }
});
P

Vc jah tentou

Ext.getCmp(“cboEmpresa”).setValue(registro.data.idEmpresa);

Se não der certo vc vai ter que criar um novo record mapeando os valores retornados da nova consulta pra o record da combo, tanto para o id do combo como para o displayField.

M

Então, eu fiz uma heraça do combobox básico.
Tô sem os códigos aki durante o fds, na segunda posto o q eu fiz.

vlw!

A

Paulo Aguiar:
Vc jah tentou

Ext.getCmp(“cboEmpresa”).setValue(registro.data.idEmpresa);

Se não der certo vc vai ter que criar um novo record mapeando os valores retornados da nova consulta pra o record da combo, tanto para o id do combo como para o displayField.

ja tentei sim e tbm com todas os metodos da combo visto na API quanto ao novo mapeamento tem como vc me fornecer um exemplo?

A

marcoswp3x:
Então, eu fiz uma heraça do combobox básico.
Tô sem os códigos aki durante o fds, na segunda posto o q eu fiz.

vlw!

vlw! aguardo segunda!!

A

arthurminarini:
marcoswp3x:
Então, eu fiz uma heraça do combobox básico.
Tô sem os códigos aki durante o fds, na segunda posto o q eu fiz.

vlw!

vlw! aguardo segunda!!

EthraZa do forum do extBrasil me respondeu e resolveu

na hora de alterar um registro use

Ext.getCmp("cboCidade").setValue(registro.data.idCidade);
        Ext.getCmp("cboUF").setValue(registro.data.idUF);
        Ext.getCmp("cboCidade").setRawValue(registro.data.descCidade);
        Ext.getCmp("cboUF").setRawValue(registro.data.descUF);

na hora de jogar para o objeto use apenas o getValue();

Criado 30 de janeiro de 2009
Ultima resposta 31 de jan. de 2009
Respostas 7
Participantes 3