Lançado Adianti Framework 7.6!
Clique aqui para saber mais
FormList inicial em ordem decrescente Criei um FormList e coloquei para abrir na ordem decrescente, deu certo, porém, quando clica na paginação ele volta para a ordem crescente, ou seja não respeita a ordem da abertura. Eu mudei: // default order if (empty($param['order'])) { $param['order'] = 'id'; $param['direction'] = 'desc'; --> aqui inicialmente vem 'asc' } ...
LC
FormList inicial em ordem decrescente  
Fechado
Criei um FormList e coloquei para abrir na ordem decrescente, deu certo, porém, quando clica na paginação ele volta para a ordem crescente, ou seja não respeita a ordem da abertura.
Eu mudei:
// default order
if (empty($param['order']))
{
$param['order'] = 'id';
$param['direction'] = 'desc'; --> aqui inicialmente vem 'asc'
}

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


FC

Veja se este FormList é filho de TStandardList ou TPage preste atenção que quando vc criar os forms se é completo ou padrão prefira o completo assim vc poderá fazer as alterações no onReload criado nessa classe se vc optar por Padrão o onReload virá da classe TStandardList então a alteração terá que ser feita lá nessa classe o que eu não aconselho entendeu ?
LC

Felipe é completo, sempro uso esta opção.
A alteração deu certo, mudando de para 'desc'.
Quando abre, grid vem na ordem decrescente certinho.

O que da errado é que quando clica na paginação ele volta para ordem crescente.

FC

Nesse caso vc poderia usar o grid como scroll sem paginação e depois olhamos lá o código fonte, mas tenho quase certeza que é pq ele guarda a variável id na secção e por isso ele se perde.

Vou olhar a classe de paginação para ver se tem algo.
FC

na classe TPageNavigation tem a linha no onshow

$direction = 'asc';

Altera para

$direction = 'desc';

Mais isso afetará as outras páginas uma forma seria passar esse parametro por dentro da classe.

PD

Basta definir o parâmetro "direction" na hora de criar a ação e atribuir ela à coluna:

  1. <?php
  2.         $id    = new TDataGridColumn('id''id''right'40);
  3.         $order1= new TAction(array($this'onReload'));
  4.         $order1->setParameter('order''id');
  5.         $order1->setParameter('direction''desc');
  6.         $id->setAction($order1);
  7. ?>
LC

Pablo, digo no momento da abertura do FormList, eu mudei a order default:
// default order
if (empty($param['order']))
{
$param['order'] = 'id';
$param['direction'] = 'desc';
}
ai ele abre como decrescente

Só que ao clicar no pageNavigation ele retorna para a order crescente.
PD

Leandro,

Você testou a solução? Pois é justamente para isso, carregar a direção para o clique da coluna.

Att,
LC

Não sei se fiz o certo.
Já tenho isso no FormList, para fazer a ordenação:
$order_id= new TAction(array($this, 'onReload'));
$order_id->setParameter('order', 'id');
$id->setAction($order_id);
ai coloquei assim:
$order_id= new TAction(array($this, 'onReload'));
$order_id->setParameter('order', 'id');
$order_id->setParameter('direction', 'desc');
$id->setAction($order_id);
O FormLista abre na order decrescente, só que ao clicar no pageNavigation volta para ordem crescente
PD

Ops, Desculpe não li direito, li pagenavigation e entendi datagrid.

A navegação tem uma ação:
$this->pageNavigation->setAction(new TAction(array($this, 'onReload')));

Você pode tentar gravar a ação em $this->navAction:
$this->navAction = new TAction(array($this, 'onReload'));

E no onReload, alterar o direction da ação
$this->navAction->setParameter('direction',...

Por que o parâmetro "order" já é definido lá...

Att,