web-dev-qa-db-fra.com

jqGrid ordre de tri par défaut?

Il semble que les propriétés jqGrid sortname et sortorder n'entraînent pas le tri de votre ensemble de données. Elles provoquent simplement l'affichage des flèches haut/bas.

Comment pouvez-vous obtenir votre ensemble de données pour trier sur le téléchargement?

Le tri fonctionne bien lorsque vous cliquez sur les en-têtes de colonne, mais je souhaite qu’un tri par défaut soit appliqué à nos données.


Mise à jour: lorsque nous cliquons sur le bouton suivant, la demande suivante trie les données.

Cela provoque une interface utilisateur légèrement déroutante dans laquelle les données sont chargées avec une flèche vers le bas dans une colonne - et les données ne sont pas triées - mais lorsque vous cliquez sur Suivant, les données sont maintenant triées.

Il semble que si j'omette nom de tri et ordre de tri que jqGrid affiche toujours l'icône de tri - bizarre.

16
Marcus Leon

Vous pourriez donner le même paramètre deux fois (une erreur très courante lorsque vous copiez-programmez un programme): pas d'infraction. Je le fais aussi.) 

Dites que vous voulez trier par OpeningDate décroissant 

..... options .... 
sortname: "OpeningDate",
sortorder: "desc",  <---- assume you write this line and expect to sort descending
..... some other options .... 
sortorder: "asc",   <---- and this line may also be there but you may not be noticing it 
..... and other options .... 

la deuxième option "ordre de tri" remplace la première et vous ne pourrez pas trier par ordre décroissant 

14
Veysel Özdemir

Je faisais face au même problème. Utilisez ceci après avoir chargé les données :

$("#tableId").jqGrid('sortGrid','colName', false, 'asc');

ou

$("#tableId").sortGrid('colName', false, 'asc');

La grille est rechargée si la valeur booléenne est définie sur true. Le dernier paramètre peut être 'asc'/'desc', en fonction de l'ordre de tri.

7

Vous avez peut-être commis la même erreur que moi, qui consistait à baser mon script client sur un ancien exemple qui utilisait "sortName" au lieu de "sortname"

2
zdux

Essayez d'utiliser

$("#list").jqGrid('setGridParam',{ page: 1 }).trigger("reloadGrid");

ou

$("#list").jqGrid('setGridParam',{ rowNum: 10 }).trigger("reloadGrid");

(remplacez 10 par la valeur que vous définissez comme paramètre rowNum). Si cela ne vous aide pas, postez votre code dans votre question.

2
Oleg

le problème est (je crois) que les paramètres sortName ni sidx sont lus lors de la demande du premier ensemble de données

1
zdux

/ Cheesy Alerte de réponse

Pourquoi ne pas masquer l'icône triée lors du premier chargement? La première fois que quelqu'un trie, affiche et les choses fonctionnent comme prévu. Cela ressemble à votre intention de charger non trié jusqu'à ce que l'utilisateur choisisse une colonne sur laquelle effectuer le tri.

0
Jason Slocomb