Ir para conteúdo


Foto

[RESOLVIDO] Modificar cor da linha do grid..


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

#1 Juliano.coelho

Juliano.coelho

    Member Avançado

  • Membros
  • PipPipPip
  • 532 posts
  • LocationPetropolis - RJ

Postado 07 October 2008 - 18:38

Boa noite!

Seguinte Segui o exemplo do array grid:

http://www.extjs.com...array-grid.html

Parte do Código:
  // create the Grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {id:'company',header: "Company", width: 160, sortable: true, dataIndex: 'company'},
            {header: "Price", width: 75, sortable: true, renderer: 'usMoney', dataIndex: 'price'},
            {header: "Change", width: 75, sortable: true, renderer: change, dataIndex: 'change'},
            {header: "% Change", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'},
            {header: "Last Updated", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
        ],
        stripeRows: true,
        autoExpandColumn: 'company',
        height:350,
        width:600,
        title:'Array Grid'
    });

Aqui chamamos uma função que conforme o valor da coluna altera cor da fonte:

"  renderer: change  "

Função:
function change(val){
        if(val > 0){
            return '<span style="color:green;">' + val + '</span>';
        }else if(val < 0){
            return '<span style="color:red;">' + val + '</span>';
        }
        return val;
    }

Minha Dúvida:

Tenho um grid que retorna cobranças em aberto e à vencer, sendo ordenado por data de vencimento, Existe uma coluna "Status" onde indica se esta em Atraso ou não, gostaria de alterar a cor das linhas em que estejam com o status em Atraso. Alguma sugestão?

Lembrando que a partir de uma coluna quero alterar toda a linha.

Abs.

Juliano Coelho




Juliano Coelho

#2 EthraZa

EthraZa

    Member Avançado

  • Expert User
  • 542 posts
  • LocationSão Paulo

Postado 07 October 2008 - 23:11

A função do renderer recebe o rowIndex como quarto parametro. Acho q vc deve pegar isso para saber qual row vc vai mudar, pega-la e aplicar um CSS que mude sua cor. Agora, como proceder para pega-la e aplicar o CSS... ;)
Mandriva Linux in LAMPE (Linux/Apache/MySql/Php/Ext)

#3 Bruno Tavares

Bruno Tavares

    Member Avançado

  • Membros
  • PipPipPip
  • 1166 posts
  • LocationRedwood City, CA, USA

Postado 04 December 2008 - 13:23

Não funciona assim porque quando o renderer é disparado a linha ainda não está presencialmente na tela. O valor de todas as células irão passar pelos seus renderes e depois a linha será adicionada   :-\ Falo isso porque testei a solução.

Editado:

Encontrei aqui no fórum mesmo uma solução
Bruno Tavares, Sr. UI Engineer
Netflix

#4 Juliano.coelho

Juliano.coelho

    Member Avançado

  • Membros
  • PipPipPip
  • 532 posts
  • LocationPetropolis - RJ

Postado 04 December 2008 - 14:36

Era justamente isto que precisava, obrigado pela dica. Assim que tiver tempo vou testar e qualquer problema posto aqui.

Abs.
Juliano Coelho




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

0 membros, 1 visitantes, 0 membros anônimos