Ir para conteúdo


Foto

[RESOLVIDO] Campo cpf_cnpj na grid - TextMaskPlugin


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

#1 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 28 November 2014 - 15:24

Olá gente,

novamente estou com uma dúvida referente à máscara na grid. Utilizo o mesmo campo para cpf e cnpj.
Porém da forma que fiz abaixo quando a grid é carregada, o campo fica em branco (não dá nenhum erro):

Ps: Já tentei colocar o return antes do Ext.util.Format.maskRenderer('99.999.999/9999-99'), porem na grid ele renderiza uma função que tem dentro de Ext.util.Format.maskRenderer, então fica assim a grid no campo cpf_cnpj:

"function (v){ Ext.util.Format.TextMask.money = money; return Ext.util.Format.TextMask.setMask(mask).mask(v); }"

Alguém já fez isso antes? sabe como tratar isso? Obgado.

{
	header	 : t('CPF/CNPJ'),
	dataIndex: 'cpf_cnpj',
	renderer: function(val){
		if(val.length > 11) {
			//CNPJ
			Ext.util.Format.maskRenderer('99.999.999/9999-99')
		}else{
			//CPF
			Ext.util.Format.maskRenderer('999.999.999-99')
		}
	}
}

ratamiette

#2 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3496 posts
  • LocationBelo Horizonte

Postado 01 December 2014 - 12:07

Raphaela, se olhar na API Doc a propriedade "renderer" irás ver que o método associado a essa propriedade deve retornar o valor a ser exibido, desta forma o método "maskRenderer" retorna a função a ser chamada, por isso está exibindo o corpo da função na coluna, tente a lógica abaixo:
{
    header   : t('CPF/CNPJ'),
    dataIndex: 'cpf_cnpj',
    renderer: function(val){
        var metodo = Ext.util.Format.maskRenderer('999.999.999-99');

        if(val.length > 11) {
            //CNPJ
            metodo = Ext.util.Format.maskRenderer('99.999.999/9999-99');
        }

        return metodo(val);
    }
}
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)


#3 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 01 December 2014 - 12:34

Boa tarde Legolas,

Funcionou certinho!! nossa, nem pensei nisso.. chamar a função que retorna do maskRenderer.
Muito obrigado!

Abçs,

Raphaela




ratamiette

#4 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3496 posts
  • LocationBelo Horizonte

Postado 03 December 2014 - 06:36

Funcionou certinho!! nossa, nem pensei nisso.. chamar a função que retorna do maskRenderer.
Muito obrigado!

:D acontece, mas de boa o bom que conseguiu sanar a sua dúvida.

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


#5 lucasfalanga

lucasfalanga

    Iniciante

  • Membros
  • Pip
  • 3 posts

Postado 11 May 2016 - 10:44

Bom dia pessoal,

 

Como faço para usar esse Ext.util.Format.maskRenderer?

Estou tentando mas não estou conseguindo. 

Estou usando ExtJS 4.x



#6 ratamiette

ratamiette

    Member Avançado

  • Membros
  • PipPipPip
  • 73 posts

Postado 17 May 2016 - 17:42

Boa tarde Lucas,

 

Você deve baixar o plugin TextMaskPlugin e adicioná-lo ao seu projeto. Segue o link: https://github.com/r...ExtJS4-TextMask

 

Insira na sua pasta ux os 2 arquivos: TextMaskPlugin.js e TextMaskCore.js

 

Você deve fazer um require do plugin no seu projeto: por exemplo na minha grid dou um require: (estes 2 arquivos ficam na minha pasta ux)

 

requires: [
     'Ext.ux.TextMaskPlugin'
],
 
Na coluna da sua grid, você pode usar o renderer como abaixo, ou como fiz neste post mais acima: 
 
renderer: Ext.util.Format.maskRenderer('R$ #9.999.990,00', true), //caso seja valor monetário

 

 

Espero que ajude! Até mais.


ratamiette




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

0 membros, 0 visitantes, 0 membros anônimos