2010-10-21 5 views
4

Existe-t-il un moyen de rendre toutes les colonnes d'une grille NON triable autrement que d'ajouter sortable:false à chaque colonne? Je sais que vous pouvez définir des options globales au niveau de la grille, mais vous ne savez pas si vous pouvez le faire au niveau de colModel.jqGrid - rend toutes les colonnes non triables?

Répondre

4

Il n'y a pas de paramètre global dans jqGrid qui correspond au sortable:false du colModel. En outre jqGrid lu directement la valeur de colModel sans utiliser certains paramètres par défaut pour chaque élément de la colonne. Donc, vous devez définir sortable:false dans chaque colonne de façon explicite.

De l'autre côté, vous pouvez faire ce qui suit:

// we define simplified column model without repeating of the same information 
var cm = [ 
    {name:'id', key: true}, 
    {name:'name'}, 
    // ... 
]; 
// new we define "our standard" properties which will be the same in all columns 
var myStdModel = {width: 150, sortable: false}; 

// we extend (or overwrite) "our standard" properties 
for (var i=0; i<cm.length; i++) { 
    $.extend(cm, myStdModel); 
    cm.index = cm.name; 
} 

$("#list").jqGrid ({ 
    colModel: cm, // we use the column model built before 
    // all other settings 
}); 

En chemin, vous pouvez probablement archiver les mêmes résultats que vous voulez, mais dans l'autre sens.

+0

Merci Oleg. Nous avons ajouté "sortable: false" à chaque colonne. –

+1

@Marcus: J'ai suggéré et j'ai pu convaincre Tony d'inclure dans la prochaine version des templates jqGrid pour les colonnes de 'colModel' (voir http://www.trirand.com/blog/?page_id=393/feature-request/templates- for-columns-in-colmodel/pour plus de détails). Les sources jqGrid actuelles sur https://github.com/tonytomov/jqGrid/ incluent déjà la nouvelle fonctionnalité. Je pense que les nouvelles seront intéressantes pour vous. – Oleg

+0

merci Oleg c'est génial !! –

6

Vous pouvez utiliser le modèle de colmodel pour atteindre cet

cmTemplate: {sortable:false} 
Questions connexes