2010-02-23 5 views
3

J'ai un jqGrid et je peux réorganiser mes colonnes avec cette option dans mon jqGridjqGrid avec colonne Reordering

jQuery("#list").jqGrid({ 
       sortable: true, 
       ... 
}); 

Cette fonctionnalité me laisse une nouvelle commande de tous mes colonnes. Mais je veux que certaines colonnes doivent être sur des endroits fixes. Y a-t-il un moyen de résoudre cela?

Merci d'avance!

Bruno

Répondre

4

Ne dites jamais jamais. jqGrid utilise la classe Sortable de jQueryUI pour exécuter la fonction glisser-déposer de la colonne. http://jqueryui.com/demos/sortable/

Pour supprimer une colonne de la liste des colonnes triables, exécutez ces deux commandes après avoir rendu votre grille (avec sortable: true).

// disable the sortable property on your target element 
// (which was applied when jqGrid rendered the grid) 
$('tr.ui-jqgrid-labels').sortable({ cancel: 'th:#element_id'}); 
// update the list of sortable item's, and exclude your target element 
$('tr.ui-jqgrid-labels').sortable({ items: "th:not(#element_id)" }); 

Note: Cela fonctionne mieux si vos colonnes sont en être triée bord gauche ou à droite de la grille. Sinon, vous pourrez toujours trier d'autres colonnes autour d'eux.

Egalement: Assurez-vous de bien comprendre la différence entre les deux options triables (niveau de grille et niveau de colmodèle). Sur les options de la grille, "sortable: true" signifie que les colonnes peuvent être réorganisées par glisser-déposer. Sur les options de colmodel, "sortable: true" signifie que vous pouvez réorganiser les lignes en cliquant sur l'en-tête de la colonne. Si vous affectez la valeur de tri à true dans les options de la grille, les options colmodel ne seront pas ramenées en cascade. Cependant, sur le colmodel, le triable est vrai par défaut.

+0

Merci pour votre réponse, si je dois mettre à jour ce projet, je vais vérifier! :) – bruno

+1

Vous devriez au moins accepter le commentaire de Walters dans le même temps. C'est mieux alors "C'est impossible". –

+0

Plusieurs ID peuvent-ils être appliqués au code ci-dessus pour la commande de plusieurs colonnes? – Sandy505

1

Vous pouvez définir sortable pour chaque colonne dans le colModel

colModel: [{ name: 'name', index: 'name', sortable: true },... 

Commander le documentation il est assez utile.

+0

si vous activez cette option, vous pouvez trier le tableau de cette colonne. Cela n'affectera pas ma colonne pour réorganiser la colonne de la position. Ce serait bien s'il y avait une option que je peux mettre dans mon colmodel pour désactiver le réordonnancement pour une seule colonne ... Mais thx. – bruno

+0

ne ressemble pas à ceci est possible avec les paramètres jqgrid, vous pouvez essayer d'attraper l'événement click th et arrêter la commande pour certaines colonnes –

1

Cela n'est pas possible dans jqgrid. J'ai cherché aussi longtemps pour cela. Et tout ce que j'ai essayé a échoué.

3

Maintenant en 2013 vous pouvez définir les « exclure » paramètre « sortable » , comme ceci:

sortable: { 
    exclude: '#'+ grid[0].id +'_actions_buttons' 
}, 
+0

Cette solution a fonctionné pour moi - merci Mistic. – Losbear