Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Paginação após dados recebidos do JSON Amigos, os números da paginação não ficam disponiveis para eu ir para proxima pagina ... o que estou errado ? ...
IM
Paginação após dados recebidos do JSON  
Amigos, os números da paginação não ficam disponiveis para eu ir para proxima pagina ... o que estou errado ?

  1. <?php
  2. class ContainerTableParcelasJson extends TPage
  3. {
  4.     private $datagrid;
  5.     
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         
  10.        
  11.         // creates one datagrid
  12.         
  13.         $this->datagrid = new BootstrapDatagridWrapper(new TQuickGrid);
  14.         // add the columns
  15.         $this->datagrid->addQuickColumn('Cod',    'cod',    'center'50);
  16.         $this->datagrid->addQuickColumn('Nome',    'nome',    'left'350);
  17.         $this->datagrid->addQuickColumn('Valor''valor''left'150);
  18.         $this->datagrid->addQuickColumn('Vencimento',   'dt_vcto',    'left'150);
  19.         
  20.         //$this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
  21.         
  22.         $action1 = new TDataGridAction(array($this'onView'));
  23.         $action2 = new TDataGridAction(array($this'onDelete'));
  24.         
  25.         $arrayDados = array('cod''nome''valor''dt_vcto''id_loja''parte''referencia');
  26.        
  27.         // add the actions
  28.         $this->datagrid->addQuickAction('Cadastro',   $action1$arrayDados'ico_find.png'50);
  29.         $this->datagrid->addQuickAction('Baixar'$action2$arrayDados'ico_delete.png'50);
  30.         
  31.         $action1->setUseButton(TRUE);
  32.         $action1->setButtonClass('btn btn-default');
  33.         $action1->setImage('fa:search blue');
  34.         
  35.         $action2->setUseButton(TRUE);
  36.         $action2->setButtonClass('btn btn-default');
  37.         $action2->setImage('fa:remove red');
  38.         
  39.         // creates the datagrid model
  40.         $this->datagrid->createModel();
  41.         
  42.         // create the page navigation
  43.         $this->pageNavigation = new TPageNavigation;
  44.         $this->pageNavigation->setAction(new TAction(array($this'onReload')));
  45.         $this->pageNavigation->setWidth($this->datagrid->getWidth()); 
  46.         $panel = new TPanelGroup('Caixa');
  47.         $panel->add($this->datagrid);
  48.         $panel->addFooter('Resumo');
  49.         
  50.         // wrap the page content using vertical box
  51.         $vbox = new TVBox;
  52.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  53.         $vbox->add($panel);
  54.         $vbox->add($this->pageNavigation);
  55.  
  56.         parent::add($vbox);
  57.     }
  58.         
  59.     /**
  60.      * Load the data into the datagrid
  61.      */
  62.     function onReload()
  63.     {
  64.         $this->datagrid->clear();
  65.         try
  66.         {
  67.             $location 'http://testserver:testserver@localhost:8085/eventos/GetDadosPromiss?dataini=01/01/2018&datafim=01/08/2018';
  68.             $valor_id 0;
  69.             $resultado =  Uteis::LerJSON($location);
  70.             if (!empty($resultado)) 
  71.             {
  72.                  $qtd        10;
  73.                  $atual      = (isset($_GET['pg'])) ? intval($_GET['pg']) : 1;
  74.                  $pagArquivo array_chunk($resultado$qtd);
  75.                  $contar     count($pagArquivo);
  76.                  $resultado  $pagArquivo[$atual-1];
  77.                                                    
  78.                 foreach ($resultado as $valor ) {
  79.                     $item = new StdClass;
  80.                     $item->cod          $valor->id_cli;
  81.                     $item->nome         $valor->nomecliente;
  82.                     $item->valor        $valor->valor;
  83.                     $item->dt_vcto      $valor->dt_vcto;
  84.                     $item->id_loja      $valor->id_loja;
  85.                     $item->parte        $valor->parte;
  86.                     $item->referencia   $valor->referencia;
  87.                     $this->datagrid->addItem($item);
  88.         
  89.                 } 
  90.             }
  91.         }    
  92.         catch (Exception $e)
  93.         {
  94.             echo 'Error: '$e->getMessage();
  95.         }
  96.      
  97.     }
  98.     /**
  99.      * method onDelete()
  100.      * Executed when the user clicks at the delete button
  101.      */
  102.     function onDelete($param)
  103.     {
  104.         // get the parameter and shows the message
  105.         //var_dump($param);
  106.         $nome=$param['nome'];
  107.         new TMessage('error'"Deseja realmente baixar o registro do cliente: $nome");
  108.     }
  109.     
  110.     /**
  111.      * method onView()
  112.      * Executed when the user clicks at the view button
  113.      */
  114.     function onView($param)
  115.     {
  116.         // get the parameter and shows the message
  117.  
  118.         $nome=$param['nome'];
  119.         $loja=$param['id_loja'];
  120.         //$tele=$param['fone2cli'];
  121.         //$ende=$param['endercli'];
  122.         //$cpf =$param['cnpjcli'];
  123.         $ref =$param['referencia'];    
  124.         new TMessage('info'"Cliente    : $nome </br >".
  125.                              "Loja       : $loja </br >".
  126.                              "referencia : $ref  </br >" );
  127.     }
  128.     
  129.     /**
  130.      * shows the page
  131.      */
  132.     function show()
  133.     {
  134.         $this->onReload();
  135.         parent::show();
  136.     }
  137.     
  138.     
  139. }

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


IF

Ico, eu creio que nesse caso não dá pra usar a paginação , pois ela é usada em conjunto com o TCriteria que define o LIMIT na consulta sql. se o volume de dados não for muito, dá pra vc ativar o DataTable:
  1. <?php
  2.      $this->datagrid->id 'table';
  3.     TScript::create('$("#table").DataTable();');
  4. ?>


Se alguém tiver outra idéia melhor, por favor postar aqui.
IM

Ivan, to quase conseguindo. ... creio uma formula ... depois posto
NR

Faltaram algumas configurações do TPageNavigation, o que geralmente é feito na função onReload:
  1. <?php
  2. $this->pageNavigation->setCount($count); // count of records
  3. $this->pageNavigation->setProperties($param); // order, page
  4. $this->pageNavigation->setLimit($limit); // limit
  5. ?>
IM

Exatamente esse $Param que faltava Nataniel ... agora só to terminando um bug..
IM

Bom, fiz essas alteraçoes e funcionou perfeito ... sem ligação nenhuma com banco de dados
  1. <?php
  2.                  $qtd        5;
  3.                  if($param == null){
  4.                  $param['page'] = 1;
  5.                  }
  6.                  $atual      $param['page'];
  7.                  $pagArquivo array_chunk($resultado$qtd);
  8.                  $contar     count($pagArquivo);
  9.                  $resultado  $pagArquivo[$atual-1];
  10. ?>
IF

Show de bola Ico! Vou fazer a minha cola pra quando precisar kkk!
IM

Ivan, como faço para recuperar os mesmos valores digitados no filtro ... na próxima paginação ?!
Vou te mostrar a imagem ... e após o clique no botão PESQUISAR, minha consulta é retornada corretamente, mas as datas que havia digitado ...eles somem !!! queria que elas permanecessem lá no edit ... para a proxima paginação ser atualizada com o mesmo filtro.
Grato
PS

boa noite Ico tudo certo? consegui fazer a separação, porem estou com problemas no meu pagenavigation, poderia enviar o código do onReload e os trecho do pagenavigation? Obrigado
IM

Te mando amanhã Paulo !!!
Vou procurar, nem tava usando mais
IM

Como prometido, segue

Paulo, acesse meu canal e veja um video que fiz ...

https://www.youtube.com/watch?v=Yj3SIc5KBek&t=254s

Aproveite e conhece o Projeto DW que temos em

www.restdw.com.br (rest)