{parts/gtag_head.html} {parts/gtag_body.html}
Mês do Programador

Vamos comemorar juntos o seu mês.
Aproveite condições especiais.

Cursos, combos e assinaturas com desconto exclusivo para comemorar o Dia do Programador. Tempo limitado.

Promoção válida de 14/09 à 25/09

De 30% Até50% OFF
Error - Adicionar additem antes do createmodel Pessoal, o framework retorna erro dizendo que: Você deve executar createModel antes de AdiantiWidgetDatagridTDataGrid::addItem, sendo que o createmodel está sendo criado e antes da adição dos items. Desta forma não consigo carregar os dados do banco. Algum colega pode me ajudar a identificar o erro? segue o código: ...
AT
Error - Adicionar additem antes do createmodel  
Pessoal, o framework retorna erro dizendo que: Você deve executar createModel antes de AdiantiWidgetDatagridTDataGrid::addItem, sendo que o createmodel está sendo criado e antes da adição dos items.
Desta forma não consigo carregar os dados do banco.
Algum colega pode me ajudar a identificar o erro?
segue o código:

 
  1. <?php
  2. class AnosList extends TPage
  3. {
  4. private $form;
  5. private $datagrid; //para criação do da grid
  6. private $pageNavigation; // para se incluir a paginação
  7. private $loaded;
  8. public function __construct()
  9. {
  10. parent::__construct();
  11. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  12. $this->datagrid->width = '100%';
  13. $col_id = new TDataGridColumn('id', 'Cód', 'right', '10%');
  14. $col_nome = new TDataGridColumn('cad_nome', 'Nome', 'left', '90%');
  15. /**
  16. * Ordenação
  17. **/
  18. $action1 = new TDataGridAction( ['Cad_AnosForm', 'onEdit'], ['key' => '{id}'] );
  19. $action2 = new TDataGridAction( [$this, 'onDelete'], ['key' => '{id}'] );
  20. $this->datagrid->addAction($action1, 'Editar', 'fa:edit blue');
  21. $this->datagrid->addAction($action2, 'Excluir', 'fa:trash-alt red');
  22. $this->datagrid->createModel();
  23. $this->pageNavigation = new TPageNavigation;
  24. $this->pageNavigation->setAction( new TAction( [$this, 'onReload'] ) );
  25. /*$vbox = new TVBox;
  26. $vbox->style = 'width:100%';
  27. $vbox->add($this->datagrid);
  28. $vbox->add($this->pageNavigation);
  29. */
  30. $panel = new TPanelGroup;
  31. $panel->add($this->datagrid);
  32. $panel->addFooter($this->pageNavigation);
  33. parent::add( $panel );
  34. }
  35. public function onReload($param)
  36. {
  37. try
  38. {
  39. TTransaction::open( 'gto_software02' );
  40. $repository = new TRepository('Cad_AnosCreate');
  41. $criteria = new TCriteria;
  42. $return_anos = $repository->load( $criteria );
  43. $this->datagrid->clear();//para garantir que a datagrid estará limpa
  44. if ( $return_anos )
  45. {
  46. foreach ( $return_anos as $anos )
  47. {
  48. $this->datagrid->addItem( $anos );
  49. }
  50. }
  51. $this->loaded = true;
  52. TTransaction::close();
  53. }
  54. catch (Exception $e)
  55. {
  56. new TMessage('error', $e->getMessage());
  57. }
  58. }
  59. public static function onDelete($param)
  60. {
  61. }
  62. function show()
  63. {
  64. if (!$this->loaded)
  65. {
  66. $this->onReload( func_get_arg(0) );
  67. }
  68. parent::show();
  69. }
  70. }
  71. ?>



Editado 18/12/2023 (há 2 anos) - Clique para ver alterações

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

Este código parece incompleto, as colunas não estão sendo adicionadas à datagrid.
Sugiro você se basear em uma versão completa do código, e a partir disso, fazer as adaptações:

Com dados estáticos:
https://framework.adianti.me/tutor/index.php?class=DatagridBootstrapView

Com uma consulta simples do banco:
https://framework.adianti.me/tutor/index.php?class=DatagridQueryView