Sort order et search spec

Bonjour,

J’ai implémenté sur un objet un searchspec. Lorsque je souhaite ajouter un tri sur un attribut, il n’est pas pris en compte.

Est-ce que le searchspec écrase ce tri ?

Merci d’avance.

Simplicité 5.1.9

Les search specs et les filtres sont deux mécanismes indépendants, ou plutôt cumulatifs.

Les filtres s’ajoutent à la where clause qui contient la searchspec, genre where (<searchspec>) and (<filtres>). Le order by ne tient compte que des ordres des filtres.

Sans votre code on ne peut pas vous aider de manière plus précise (ex: faites vous un resetOrders ?, un resetFilters ? a quel moment du cycle de vie de l’objet ?, comment et quand valorisez vous vos filtres/ordres ?, quelle valeur a votre searchspec ?, quand la valorisez vous ?, etc.)

Pour compléter :

  • Une search spec est un morceau de SQL where “en dur” sur l’objet, non accessible à l’utilisateur
  • Un filtre ou un ordre est accessible à l’utilisateur et par code.
  • Chaque instance d’objet a ses propres propriétés clonées de la définition de base + postLoad

La perte de tri peut être causée par un resetOrders() global ou un setOrder(0) sur un champ,
ou le fait de changer d’instance, par exemple vous positionnez un filtre sur l’instance fille (panel_ajax_xxxx) puis vous affichez l’instance main (the_ajax_xxx) qui n’est pas au courant.

Dans le code front, les tris sont envoyés comme des filtres avec un prefix “order__”

exemple
obj.search(..., { field1:"abc%", order__field1: -1 })
pour chercher les field1 qui commencent par “abc” dans un ordre décroissant.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.