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'
}
Eu mudei:
// default order
if (empty($param['order']))
{
$param['order'] = 'id';
$param['direction'] = 'desc'; --> aqui inicialmente vem 'asc'
}
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 ?
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.
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.
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.
Basta definir o parâmetro "direction" na hora de criar a ação e atribuir ela à coluna:
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.
Leandro,
Você testou a solução? Pois é justamente para isso, carregar a direção para o clique da coluna.
Att,
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
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,