Conheça as melhorias da versão 8.0, 8.1, 8.2!
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. 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)