Ir para conteúdo


Foto

[RESOLVIDO] replaceWith - ExtDesigner 1.2 - Projeto com Extjs4


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

#1 charcalcado

charcalcado

    Novato

  • Membros
  • PipPip
  • 10 posts

Postado 21 September 2011 - 12:42

Pessoal eu usava muito o replaceWith com Ext3.

Ext.override(Ext.Component, {
	replaceWith : function(newComponent) {
		var ctnr = this.ownerCt;
		// if the refOwner is a form or if newComponent.ownerForm config is set to the form
		var form = newComponent.ownerForm ? newComponent.ownerForm : this.refOwner.form;
		var i = ctnr.items.indexOf(this);
		// apply initialConfig
		Ext.applyIf(newComponent, this.initialConfig);
		ctnr.remove(this, true);
		var added = ctnr.insert(i, newComponent);
		// if the component is in a form
		if (form) {
			// remove the old component from the form
			form.remove(this);
			// add the new component to the form
			form.add(added);
		}
	}
});

Tem alguma coisa parecida para Ext4? ou tem alguma coisa nativa?

Charles

#2 Wemerson Januario

Wemerson Januario

    Administrador Ext JS Brasil

  • Administrators
  • 837 posts
  • LocationGoiânia - GO

Postado 21 September 2011 - 14:09

testa ai se funciona no Ext 4. qualquer correção posta ai pra noixxx
Ext.override(Ext.AbstractComponent, {
    replace: function(newCmp) {
        var 	oldCmp = this, 
		parent = oldCmp.up(), 	//encontra o componente pai
		index;
				
	//encontra a posição exata do componente que precisa ser substituido
        parent.items.each(function(c,i) {if (c==oldCmp) index=i;});
		
	//remove o componente
	parent.remove(oldCmp, true);
		
	//adiciona o novo componente
        newCmp = parent.insert(index, newCmp);
        
	//refaz o layout
        parent.doLayout();

	//retorna o novo componente
        return newCmp;
    }
});

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

 

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


#3 charcalcado

charcalcado

    Novato

  • Membros
  • PipPip
  • 10 posts

Postado 21 September 2011 - 14:20

funcionou.

Obrigado,
Charles




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

0 membros, 1 visitantes, 0 membros anônimos