R
Problemas com DataGrid
Saudações!
Sou novo no adianti e estou desenvolvendo uma aplicação que necessita do uso de datagrids.
Usei como base para o desenvolvimento das mesmas o código disponibilizado no Tutor.
Até ai tudo bem, o código funciona e os dados que estou consumindo de uma API rest estão aparecendo normal.
O problema está em uma mensagem de erro do Adianti que persiste, mesmo eu mexendo e mudando muitas coisas! xD
Segue abaixo o código-fonte:
Sou novo no adianti e estou desenvolvendo uma aplicação que necessita do uso de datagrids.
Usei como base para o desenvolvimento das mesmas o código disponibilizado no Tutor.
Até ai tudo bem, o código funciona e os dados que estou consumindo de uma API rest estão aparecendo normal.
O problema está em uma mensagem de erro do Adianti que persiste, mesmo eu mexendo e mudando muitas coisas! xD
Segue abaixo o código-fonte:
- <?php
- class PagamentosList extends TPage{
- private $datagrid;
- private $loaded;
- public function __construct(){
- parent::__construct();
-
- $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
- $this->datagrid->style = 'width: 100%; cursor: unset';
- try{
- require_once 'request.php';
- $location = 'http://192.168.1.183:4000/pagamentos/000012';
- $p = json_decode(file_get_contents($location, true), true);
-
- foreach($p as $ps => $pp){
-
- $contrato = $pp['codibene'];
- $mensalidade = $pp['menspaga'];
- $pagamento = $pp['datapaga'];
- $valorTot = $pp['valopaga'];
-
- // $contrato2 = new TDataGridColumn('codibene', 'Contrato' ,'left', '25%');
- $mensalidade2 = new TDataGridColumn('menspaga', 'Mensalidade', 'left', '25%');
- $pagamento2 = new TDataGridColumn('datapaga', 'Data do Pagamento', 'left', '25%');
- $valorTot2 = new TDataGridColumn('valopaga', 'Valor Pago(R$)', 'left', '25%');
-
-
- $this->datagrid->addColumn($mensalidade2);
- $this->datagrid->addColumn($pagamento2);
- $this->datagrid->addColumn($valorTot2);
-
-
-
- //$this->datagrid->addItem(json_encode($pp));
-
- @$this->datagrid->createModel();
- @parent::add($this->datagrid);
-
-
- }
-
-
-
-
- }
- catch (Exception $e)
- {
- echo 'Error: ' . $e->getMessage();
- }
- }
- public function formatDate($transf_date, $object)
- {
- $date = new DateTime($object->pagamento2);
- return $date->format($object->format);
- }
-
-
- public function onReload(){
-
- try{
- require_once 'request.php';
- $location = 'http://192.168.1.183:4000/pagamentos/000012';
- $p = json_decode(file_get_contents($location, true), true);
-
- $this->datagrid->clear();
-
- foreach($p as $ps => $pc){
-
-
- // $item->codibene = $pc['codibene'] ;
- @ $item->menspaga = $pc['menspaga'];
- @ $item->datapaga = $pc['datapaga'];
- @ $item->valopaga = $pc['valopaga'];
- @ $this->datagrid->addItem($item);
-
- }
-
-
- }
-
-
-
-
- catch (Exception $e)
- {
- echo 'Error: ' . $e->getMessage();
- }
-
- }
-
-
- public function show()
- {
- $this->onReload();
- parent::show();
- }
- }
- ?>
Olá amigo.
A datagrid é um objeto e ela deve ser criada para depois ser populada.
Você a está criando dentro de um foreach!
Os passos para uma datagrid:
1) Instancia a data grid;
2) Cria e adiciona as colunas, botões e etc;
3) Aciona o método "createModel";
4) No onReload você chama seu webservice, instancia um stdCalss, popula a grid com o método
"addItem", aí sim no foreach.
Eita!
Fiz exatamente como você disse. Alguns dados foram para antes e outros para depois do foreach. Permanecendo, apenas:
E deu super certo. Sumiu o erro! xD
Obrigado!!
Opa!Excelente. Sucesso.