Inscrições abertas para nosso Webinar anual Adianti Framework 2024!
Clique aqui para saber mais
Datagrid dentro de abas E aí, pessoal. Tudo bem com vocês? Estou com um pequeno problema em umas telas que estou desenvolvendo e gostaria de uma ajuda pois não encontrei nada que resolva minha situação. Tenho uma tela onde contém várias abas e dentro dessas abas há datagrids com o pagenavigation, mas ocorre a seguinte situação: Se eu estou na Aba 3, por exemplo, e clico no segunda página do pagenavigati...
JP
Datagrid dentro de abas  
E aí, pessoal. Tudo bem com vocês?

Estou com um pequeno problema em umas telas que estou desenvolvendo e gostaria de uma ajuda pois não encontrei nada que resolva minha situação.
Tenho uma tela onde contém várias abas e dentro dessas abas há datagrids com o pagenavigation, mas ocorre a seguinte situação:

Se eu estou na Aba 3, por exemplo, e clico no segunda página do pagenavigation, a página atualiza e me manda de volta para a Aba 1.

Tem alguma maneira de eu permanecer na mesma aba usando o pagenavigation nas datagrids?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (3)


NR

Você pode definir a aba "selecionada" através da função setCurrentPage, sendo 0 a primeira aba. Ex:
  1. <?php
  2. $this->form->setCurrentPage(2);
  3. ?>
JP

Olá, Nataniel. Obrigado pela resposta!

Fui utilizar esse trecho de código porém não funcionou da maneira como esperava.
Eu passei uma variável $param['aba'] junto com os parâmetros enviados na função associada ao pageNavigation de cada tabela. Segue abaixo o código:

  1. <?php
  2. $param['aba'] = 0// Aba 1 representada pelo índice Zero, assim como você comentou
  3. $this->pageNavigation_concluido = new TPageNavigation;
  4. $this->pageNavigation_concluido->enableCounters();
  5. $this->pageNavigation_concluido->setAction(new TAction(array($this'onReload'), $param));
  6. $this->pageNavigation_concluido->setWidth($this->datagrid->getWidth());
  7. ?>


O valor de $param['aba'] ele muda de acordo com cada pageNavigation, nisso a navegação da tabela da Aba 2, $param['aba'] = 1 e assim por diante.
Quando utilizo as navegações de qual tabela seja, o valor de $param['aba'] é passado corretamente para que eu possa saber qual página eu estou navegando pra manter aquele aba ativa. Para isso, eu utilizei a verificação abaixo:

  1. <?php
  2. if (isset($param['aba'])) {
  3.     $subform->setCurrentPage((int) $param['aba']);
  4. } else {
  5.     $subform->setCurrentPage(0);
  6. }
  7. ?>


Porém, o que está acontecendo é que não importa qual pageNavigation eu estou utilizando, a aba que está ficando sempre aberta é a dois.
Você teria alguma ideia do que possa ser?

Mais uma vez, fico muito grato com a resposta!
JP

Olá, Nataniel.

Consegui resolver o problema que mencionei anteriormente. Eu estava colocando o trecho de verificação da variável $param['aba'] em um local errado do código, fiz algumas mudanças colocando ele logo no início e agora funciona corretamente.

Muito obrigado pela ajuda!!