Ir para conteúdo


Foto

[RESOLVIDO] Controlar as classses nas linhas do grid


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

#1 Ricardo Galvão

Ricardo Galvão

    Member Avançado

  • Membros
  • PipPipPip
  • 50 posts

Postado 10 May 2010 - 15:24

Ola pessoal, gostaria de uma ajuda, precisava alterar a cor das linhas do grid de acordo com os dados que a linha contiver. Isso já consegui, mas quando o usuário clica sobre a linha ela permanece com a class que foi dada por mim...
Como faço pra quando o usuário selecionar a linha alterar a cor novamente ????

#2 sethend

sethend

    Member Avançado

  • Membros
  • PipPipPip
  • 240 posts
  • LocationAraraquara-SP

Postado 10 May 2010 - 15:34

Boa tarde ricgoliveira,

Creio que você pode usar um listner para assim que houver o evento de click ele altere a cor.
Em casa de ferreiro o WINDOWS da pau!

#3 Ricardo Galvão

Ricardo Galvão

    Member Avançado

  • Membros
  • PipPipPip
  • 50 posts

Postado 10 May 2010 - 17:57

Se fosse simples assim estava bom !!!!!
De qualquer maneira, cheguei a solução do problema.
Para atribuir classes (css) às linhas do grid conforme o valor que a linha contiver:
Grid = new Ext.GridPanel({
     ... // configurações normais do grid(store, etc...)
     ,viewConfig = {
		getRowClass: function(record, rowIndex, rp, ds){	// record são as informações da linha, rowindex, index da linha		
				if (record.data.tipo == 1){
					return 'grid-green';
				}else if((record.data.tipo == 0)&&(record.data.tipo != null)&&(record.data.tipo != "")){
					return 'grid-orange';
				}								
		}
	};
});
Do jeito que eu fiz quando o campo tipo (record.data.tipo) for igual a 0 aplico a classe css que criei de nome giord-green, senão aplico a classe grid-orange.
Até aí eu já tinha falado que já havia conseguido.
Agora o pulo, quando a linha era clicada a classe permanecia a que eu apliquei, para resolver fiz, como nosso amigo disse o listener:

meuGrid.on('rowclick', function(g,r,e){
		if(this.linha != ""){ // linha tem que ser declarada como global pra funcionar
			this.linha.removeClass('row-selected');
		}	
		this.linha = Ext.get(meuGrid.getView().getRow(r));
		this.linha.addClass('row-selected');
	}, this);


QUando a linha é clicada, se a referencia de linha não existir ainda, ele aplica a classe na linha selecionada, se ela existir, ele remove a classe row-selected e insere na outra linha que foi clicada.
Parece bobo, mas vai procurar alguém ensinando isso pra ver se alguém acha, pelo menos agora já temos.....

Abraço a todos.....


#4 Barba

Barba

    Iniciante

  • Membros
  • Pip
  • 1 posts

Postado 14 November 2018 - 11:49

Preciso remover uma Classe CSS de todas as linhas do grid independente de ação do usuario. Como faço?






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

0 membros, 0 visitantes, 0 membros anônimos