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:
Desta forma não consigo carregar os dados do banco.
Algum colega pode me ajudar a identificar o erro?
segue o código:
- <?php
- class AnosList extends TPage
- {
- private $form;
- private $datagrid; //para criação do da grid
- private $pageNavigation; // para se incluir a paginação
- private $loaded;
- public function __construct()
- {
- parent::__construct();
- $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
- $this->datagrid->width = '100%';
- $col_id = new TDataGridColumn('id', 'Cód', 'right', '10%');
- $col_nome = new TDataGridColumn('cad_nome', 'Nome', 'left', '90%');
- /**
- * Ordenação
- **/
- $action1 = new TDataGridAction( ['Cad_AnosForm', 'onEdit'], ['key' => '{id}'] );
- $action2 = new TDataGridAction( [$this, 'onDelete'], ['key' => '{id}'] );
- $this->datagrid->addAction($action1, 'Editar', 'fa:edit blue');
- $this->datagrid->addAction($action2, 'Excluir', 'fa:trash-alt red');
- $this->datagrid->createModel();
- $this->pageNavigation = new TPageNavigation;
- $this->pageNavigation->setAction( new TAction( [$this, 'onReload'] ) );
- /*$vbox = new TVBox;
- $vbox->style = 'width:100%';
- $vbox->add($this->datagrid);
- $vbox->add($this->pageNavigation);
- */
- $panel = new TPanelGroup;
- $panel->add($this->datagrid);
- $panel->addFooter($this->pageNavigation);
- parent::add( $panel );
- }
- public function onReload($param)
- {
- try
- {
- TTransaction::open( 'gto_software02' );
- $repository = new TRepository('Cad_AnosCreate');
- $criteria = new TCriteria;
- $return_anos = $repository->load( $criteria );
- $this->datagrid->clear();//para garantir que a datagrid estará limpa
- if ( $return_anos )
- {
- foreach ( $return_anos as $anos )
- {
- $this->datagrid->addItem( $anos );
- }
- }
- $this->loaded = true;
- TTransaction::close();
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- public static function onDelete($param)
- {
- }
- function show()
- {
- if (!$this->loaded)
- {
- $this->onReload( func_get_arg(0) );
- }
- parent::show();
- }
- }
- ?>
Editado 18/12/2023 (há 4 meses) - Clique para ver alterações
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