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

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