Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Mudar a cor de uma coluna no TDataGrid Olá Eu preciso mudar a cor de algumas colunas no datagrid. Mudar a cor da linha é algo fácil, mas eu preciso mudar a cor de algumas colunas. Alguém já fez usando "setTransformer"?...
MG
Mudar a cor de uma coluna no TDataGrid  
Olá
Eu preciso mudar a cor de algumas colunas no datagrid.
Mudar a cor da linha é algo fácil, mas eu preciso mudar a cor de algumas colunas.
Alguém já fez usando "setTransformer"?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (4)


NR

Você consegue acessar todas as colunas vinculadas à $row pela função getChildren ou get(indice):
  1. <?php
  2. $col $row->get(0); //pegar primeiro filho de $row
  3. $col->style 'background: red';
  4. ?>
MG

Nataniel, boa tarde.
Funciona, porém se eu já estou formando a coluna, não!

No meu exemplo, a coluna que quero formatar é a coluna 5, não funciona, mas se eu utilizo por exemplo a coluna "0" zero e funciona.

  1. <?php
  2.     public function formataValorUnitario($value$object$row) {
  3.          $result '';
  4.          if (is_numeric($value)) {
  5.              $result number_format($value,2,',','.');
  6.          } else {
  7.              $result '0,00';
  8.          }
  9.          $col $row->get(5);
  10.          $col->style 'background: green;color: white;';
  11.          return $result;        
  12.     }
  13. ?>
NR

Marcelo, o que acontece é que a coluna é adicionada à linha após chamar a função setTransformer, então se você usar a setTransformer na terceira coluna da grid, $row só terá 2 filhos(a primeira e segunda coluna).

Outra possibilidade é capturar o retorno da função addItem dentro da onReload, ela terá a instância da linha com todos os filhos(colunas).
  1. <?php
  2. $row $this->datagrid->addItem($object);
  3. ?>
MG

Nataniel, funcionou.
Muito obrigado!