Desativar botão de ação dentro da datagrid Como faço para desativar um botão de ação dentro de uma data grid...estou usando como base o SaleForm do tutor, gostaria de fazer o seguinte, quando a pessoa aperto no button_edi; desativar o button_del e o button_edi e só ativar depois de gravar...Consigo fazer com os demais botões que estão fora da grid pelo método TButton::disableField('nome_do_form' , 'nome_do_btn')... porém não ...
JF
Desativar botão de ação dentro da datagrid  
Como faço para desativar um botão de ação dentro de uma data grid...estou usando como base o SaleForm do tutor, gostaria de fazer o seguinte, quando a pessoa aperto no button_edi; desativar o button_del e o button_edi e só ativar depois de gravar...Consigo fazer com os demais botões que estão fora da grid pelo método TButton::disableField('nome_do_form' , 'nome_do_btn')... porém não consigo com os botões da grid...Alguém tem alguma dica ?
Agradeço desde já.

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


NR

Você precisa passar um parâmetro na ação dos botões na função onReload identificando qual botão deve ser desativado:
 
  1. <?php
  2. //function onReload
  3. $action_del = new TAction(array($this, 'onDeleteItem'));
  4. $action_del->setParameter('list_product_id', $list_product_id);
  5. $action_del->setParameter('cont',$cont);//variavel $cont é usada no nome do botao, conforme linha abaixo
  6. ...
  7. //$button_del = new TButton('delete_product'.$cont);
  8. // function editItem
  9. TButton::disableField('nome_form','delete_product'.$param['cont']);
  10. ?>
JF

Valeu pela dica Natanael...mas ainda não deu certo, só consigo desativar dentro da função onReload...dentro da onEditItemProduto não encontra o parâmetro cont. O que estou fazendo de errado, não faltou nada no seu código ?

public function onEditItemProduto( $param )
{
TButton::disableField('customform', 'action1');//calcula taxa
TButton::disableField('customform','delete_product'.$param['cont']);
}
** ERRO Undefined index: cont in
?>
NR

No post anterior usei como exemplo a passagem do parâmetro 'cont' para a ação de delete, mas você precisa passar para a ação de edição:
 
  1. <?php
  2. $action_edi->setParameter('cont',$cont);
  3. ?>
JF

Valeu Nataniel...agora deu tudo certo, perfeito...faltava setar o parâmetro cont mesmo. Abraços
JF

Outra dúvida ...como faço pra desativar a ação de todos os registro não só do registro que vem como parâmetro n cont, pq desse jeito só desativa a ação de um registro na grid; gostaria que desativasse de todos. Como faço ?
NR

Faça um for de 1 até o número de itens:
 
  1. <?php
  2. $total_itens = count($sale_items);//sale_items é a variavel que pega os itens salvos na sessao
  3. for($i=1;$i<=$total_itens;$i++)
  4. {
  5. TButton::disableField('form_Sale','delete_product'.$i);
  6. TButton::disableField('form_Sale','edit_product'.$i);
  7. }
  8. ?>
JF

Valeu mesmo pela ajuda Nataniel, tudo perfeito mano veio....Abração
JF

Tive que acrescentar + 1 ao contador pq sempre ficava disponível o último registro pra clique ...por fim era isso, vou deixa o código a baixo pra quem tiver o mesmo problema que eu. Valeu Abraços.

 
  1. <?php
  2. $total_itens = count($sale_items);//sale_items é a variavel que pega os itens salvos na sessao
  3. $total_itens = $total_itens + 1 ;
  4. for($i=1; $i <= $total_itens; $i++)
  5. {
  6. TButton::disableField('customform','delete_product'.$i);
  7. TButton::disableField('customform','edit_product'.$i);
  8. }
  9. ?>
WR

Bom dia!!

Como eu sei o nome que o Adianti gera para o botão de ação no datagrid??
Gostaria de desabilitar o botão no datagrid, conforme exemplo a baixo.

 
  1. <?php
  2. TButton::disableField('nome_form','NOME_BOTAO'.$param['cont']);
  3. ?>


Esse é meu código para ação do datagrid,eu não estou setando nome do botão
 
  1. <?php
  2. $action2 = new TDataGridAction([$this, 'onDelete']);
  3. $action2->setUseButton(TRUE);
  4. $action2->setButtonClass('btn btn-default');
  5. $action2->setLabel(_t('Delete'));
  6. $action2->setImage('fa:trash-o red fa-lg');
  7. $action2->setField('id');
  8. $action2->setDisplayCondition( array($this, 'displayColumn') );
  9. ?>