Alterar valor da linha do datagrid Como faço para alterar o conteúdo de uma linha no datagrid ao carregar os itens? Ex. uma coluna STATUS com valores 0 ou 1, mudaria para INATIVO ou ATIVO, ou uma imagem na coluna do datagrid....
FV
Alterar valor da linha do datagrid  
Fechado
Como faço para alterar o conteúdo de uma linha no datagrid ao carregar os itens?
Ex. uma coluna STATUS com valores 0 ou 1, mudaria para INATIVO ou ATIVO, ou uma imagem na coluna do datagrid.

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 (1)


PD

Oi Fagner,

Adicionamos objetos em uma datagrid por meio do método TDataGrid::addItem(). Mas antes disso, criamos as coluna da datagrid. Basicamente o framework exibe em cada coluna, algum atributo do objeto:
<?php$name  = new TDataGridColumn('name', 'name', 'left', 250);?>


Nesse momento, podemos criar uma coluna virtual, que não existe na prática. Imaginando que o objeto "cliente" tenha um atributo chamado "sexo", que é {M,F}, e desejamos exibir {Masculino,Feminino}. Nesse caso, podemos criar uma coluna chamada "nome_sexo". Mas claro que essa coluna viria vazia, por que o objeto não tem esse atributo.

<?php$name  = new TDataGridColumn('nome_sexo', 'Sexo', 'left', 250);?>


O próximo passo é alterara classe Active Record (cliente, nesse caso), e adicionarmos um método get_nome_sexo(). Sempre que tentarmos acessar o atributo ->nome_sexo, como no caso da coluna da datagrid, então esse método é executado, retornando a descrição...:

<?phpclass Cliente extends TRecord{    const TABLENAME = 'cliente';    const PRIMARYKEY= 'id';    const IDPOLICY =  'max'; // {max, serial}        public function get_nome_sexo()    {        $nomes = array('M'=>'Masculino', 'F'=>'Feminino');        return $nomes[$this->sexo];    }}?>


No livro (www.adianti.com.br/bkframe) essas cosias são explicadas com mais detalhes. Não deixe de adquirir o seu ;-)

um abraço,
Pablo