Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Ação no DataGrid sem refresh usando TNotebook Boas, Tenho uma tela de cadastro BootstrapFormBuilder a qual uso o TNotebook. Nesta tela tenho uma Aba para Cadastro (Form), uma Aba para Contatos (Grid) e outra Aba para Documento (Grid). Para Inclusão e Edição de Contatos e Documentos uso uma Tela TWindow, até ai OK. O Problema esta quando eu vou excluir ou o Contato ou o Documento, o qual eu chamo a new TQuestion como interaç...
MC
Ação no DataGrid sem refresh usando TNotebook  
Boas,

Tenho uma tela de cadastro BootstrapFormBuilder a qual uso o TNotebook.

Nesta tela tenho uma Aba para Cadastro (Form), uma Aba para Contatos (Grid) e outra Aba para Documento (Grid).

Para Inclusão e Edição de Contatos e Documentos uso uma Tela TWindow, até ai OK.

O Problema esta quando eu vou excluir ou o Contato ou o Documento, o qual eu chamo a new TQuestion como interação
com o usuário perguntando se o mesmo realmente deseja excluir, (Contato ou Documento) .

O mesmo dá um refresh na tela e ai tudo desaparece.

Tem como desabilitar isso ?

Porque Isso não funciona ? $this->DtGridCtt->getItems()


Segue código e Telas.


  1. <?php
  2. //= Contatos ===================================================================   
  3.     //---- Exclusao ------------------------------------------------------------
  4.     
  5.     public function onDelCtt$param )
  6.     {
  7.         // Acao do botao Sim    
  8.         $actsim = new TAction( array( $this'DelCtt'));
  9.         $actsim->setParameters$param );
  10.         // Acao do botao Nao
  11.         $actnao = new TAction( array( $this'onEdit'));
  12.         $actnao->setParameter('key'TSession::getValue('ForID'));
  13.     
  14.         // Carrega as Informações da Grid
  15.         foreach ( $this->DtGridCtt->getItems() as $item)     // não funciona ??
  16.         {
  17.             if ( $item->CTT_ID == $param['CTT_ID'] ) $nome $dat->CTT_NOME;
  18.         }
  19.         new TQuestion'CONTATO: <b>'.$param['CTT_ID'].' - '.$nome.'</b><br>'.
  20.                        'Você realmente quer EXCLUIR este CONTATO?'$actsim$actnao );
  21.     }
  22.     //--------------------------------------------------------------------------
  23.     
  24.     public function DelCtt$param )
  25.     {
  26.         try
  27.         {
  28.             $key $param['key'];
  29.             TTransaction::openMkSgc_Geral );
  30.             $object = new TblPesContato$keyFALSE);
  31.             $pesid  $object->CTT_PESID;
  32. //            $object->delete();
  33.             TTransaction::close();
  34.             $act = new TAction( array( $this'onEdit'));
  35.             $act->setParameter('key'$pesid );
  36.     
  37.             new TMessage'info''Contato Excluido'$act );
  38.         }
  39.         catch (Exception $e)
  40.         {
  41.             new TMessage'error'$e->getMessage());
  42.             TTransaction::rollback();
  43.         }
  44.     }
  45. ?>







Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


NR

Marco, sempre que a página é recarregada as informações do formulário são perdidas, por isso a necessidade de utilizar getData e setData. No seu caso, as ações padrão da grid usam GET ao invés de POST, por isso você não vai conseguir capturar os dados via getData. Veja que o exemplo de master/detail do tutor não usa as ações normais na grid de detail, ele cria botões para fazer o POST e manter as informações preenchidas. adianti.com.br/framework_files/tutor/index.php?class=SaleForm&me

Além dessa opção de usar botões você também pode transformar essas funções em static(não haverá recarga de tela) e remover/ocultar a linha deletada via javascript.
MC

Nataniel, obrigado pela resposta, vou analisar as opções.