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 Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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!