TPagenavigation com duas TQuickgrids na página. Bom dia a todos. Estou desenvolvendo uma página onde tenho que ter dois TQuickgrids independentes na mesma. Está funcionando corretamente. Minha dúvida é se consigo colocar os TPageNavigation para cada um deles independente, ou seja, ao mudar a paginação do grid1, o do grid2 não mudar junto. Agradeço a gentileza. Ailton Furtado....
AF
TPagenavigation com duas TQuickgrids na página.  
Bom dia a todos.
Estou desenvolvendo uma página onde tenho que ter dois TQuickgrids independentes na mesma. Está funcionando corretamente. Minha dúvida é se consigo colocar os TPageNavigation para cada um deles independente, ou seja, ao mudar a paginação do grid1, o do grid2 não mudar junto.

Agradeço a gentileza.
Ailton Furtado.

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


NR

Veja o exemplo abaixo do Tutor, acredito que você possa adaptar conforme desejado.
adianti.com.br/framework_files/tutor/index.php?class=InboxView

Basicamente através do atributo "adianti_target_container" você consegue definir que determinada classe carregue dentro de uma div específica, evitando o recarregamento do restante da tela.
AF

Bom dia Nataniel.
Obrigado pelo retorno.
Vou dar uma olhada e dou retorno do avanço.
Como lhe disse, as duas grids estão funcionando perfeitamente independentes, o lance é usar um TPageNavigation para cada um independente, sem que ao acessar a página dois de uma, a outra vá também.

Atenciosamente,
Ailton Furtado
IF

Olá. Quando eu não tenho que carregar muitos dados na Datagrid , eu uso o DataTable. faça um teste:

<?php    $this->datagrid1->setId('datagrid1'); //Defina um id pra primeira DataGrid    $this->datagrid1->datatable = 'false';    TScript::create("            $('#datagrid1').DataTable();     ");    $this->datagrid2->setId('datagrid2'); //Defina um id pra segunda DataGrid    $this->datagrid2->datatable = 'false';    TScript::create("            $('#datagrid2').DataTable();     ");?>

Para maiores informações sobre o DataTable , segue o link : https://datatables.net
AF

Boa tarde Ivan Fernandes.
Em primeiro lugar obrigado pela dica. Ela atende o que eu preciso, mas ele acusa a mensagem alerta que até o momento não descobri como resolver em nenhum dos posts associados ao adianti.

Segue a criação da grid:

// creates a DataGrid PPE
$this->datagrid_ppe = new BootstrapDatagridWrapper(new TQuickGrid);
$this->datagrid_ppe->width = '100%';
$this->datagrid_ppe->setHeight(320);
$this->datagrid_ppe->makeScrollable();
$this->datagrid_ppe->setId('datagrid_ppe');
$this->datagrid_ppe->datatable = 'true';
TScript::create("
$('#datagrid_ppe').DataTable();");

// creates the datagrid columns
$coluna_ppe_id = $this->datagrid_ppe->addQuickColumn('ID Pessoa PPE', 'ppe_id', 'left', '50%', new TAction(array($this, 'onReload')), array('order', 'ppe_id'));
$coluna_ppe_id->setTransformer([$this, 'formatRowPPE'] );
$coluna_ppe_nome = $this->datagrid_ppe->addQuickColumn('Nome', 'ppe_nome', 'left', '50%', new TAction(array($this, 'onReload')), array('order', 'ppe_nome'));
$coluna_ppe_nome->setTransformer([$this, 'formatRowPPE'] );
// add the actions to the datagrid
$this->datagrid_ppe->addQuickAction(_t('Edit'), new TDataGridAction(array($this, 'onEdit_ppe')), 'ppe_id', 'fa:pencil-square-o blue fa-lg');

// create the datagrid model
$this->datagrid_ppe->createModel();

E o alerta:

DataTables warning: table id=datagrid_ppe - Requested unknown parameter '3' for row 0. For more information about this error, please see datatables.net/tn/4

Agradeço mais uma vez sua gentileza.
IF

Boa tarde Ailton. O único problema em usar o DataTables é que ele dá pau com alguns métodos do Adianti. Esse erro foi causado pelo :
<?php $this->datagrid_ppe->makeScrollable(); ?>

O DataTables não aceita!

Mas vc pode usar o Scroll do próprio DataTables.

<?php    $('#example').DataTable( {        "scrollY":        "200px", //Altura o qto vc quiser        "scrollCollapse": true    } );?>
AF

Bom dia Ivan.
Deu certo sua dica.

Agora estou estudando uma forma de no onreload, o cursor da datagrid parar na linha que foi selecionada.

Obrigado pela sua gentileza.
AF

Boa tarde Ivan.
Com sua ajuda consegui atingir o objetivo,
Achei o que falta para o datagrid se manter na paginação selecionada antes do reload.

Bastou colocar o parâmetro:

stateSave: true

$('#example').DataTable( {
"scrollY": "200px", //Altura o qto vc quiser
"scrollCollapse": true ,
stateSave: true
AF

Muito obrigado Ivan.