J'utilise la fonction de réorganisation de la colonne dans JQGRID
$grid = jQuery("#list").jqGrid({
sortable:true,
...
});
7 Réponses :
Le Demo pour le plug-in JQGriD SDICABLE SDIBLABLE dit que toutes les options et événements disponibles du widget triable peut être utilisé. P>
Si c'est vrai, alors vous devriez aller juste à l'aide du Mettre à jour l'événement Cela fait partie du plugin de tri. p>
Merci ... Je pensais que cela semblait aussi prometteur. Cependant, je ne peux toujours pas comprendre comment je peux définir un gestionnaire pour cet événement. J'ai essayé d'ajouter une mise à jour: fonction (événement, ui) {alerte (""); } Lorsque j'initialise la grille et aussi $ ("# liste"). Bind ("Sortupdate", fonction () {alerte ("");}); après l'initialisation de la grille. Mais ni l'un ni l'autre ne fonctionne pour moi ... des indicateurs?
Ceci fonctionne: P>
[édité] p>
$ ('. UI-JQGrid-hbox Table', $ ('#' + gridid) .Parents ('. UI-JQGrid-View'))) )}) p>
où vous devez transmettre votre gridid et créer cette fonction onGridColumnRoCarded bien sûr. P>
N'a pas travaillé pour moi du tout. Cela ne semble pas que la liaison d'événement se produise avec succès.
trouvé après avoir lu la réponse de MR W et expérimenter un peu, il y a une meilleure façon de faire les choses: profiter! p> p>
Il y a un appel dans Grid.jQueryui.js (JQGrid V3.8.2) dans la mise à jour () à TS.P.SORTABLE.UPDATE () Comme indiqué sur le JQGrid Message Board , donc: Toutefois, veuillez noter que la matrice transmise à votre rappel être relatif à l'ordre de colonne actuel. En d'autres termes, enregistrer le tableau comme après le déplacement de plusieurs colonnes ne produira pas les résultats souhaités. P> Je devais faire quelque chose comme ceci: P> var defaultColNames = [ 'Alpha', 'Beta', 'Gamma' ];
var defaultColModel = [
{ name: 'alpha', index: 'alpha' },
{ name: 'beta', index: 'beta' },
{ name: 'gamma', index: 'gamma' }
];
jQuery('#gridId').jqGrid({
...,
colNames: defaultColNames,
colModel: defaultColModel,
sortable: { update: function(relativeColumnOrder) {
var grid = jQuery('#gridId');
var defaultColIndicies = [];
for( var i=0; i<defaultColModel.length; i++ ) {
defaultColIndicies.push(defaultColModel[i].name);
}
if( grid.getGridParam('treeGrid') ) {
// tree grid mode adds 5 extra columns
defaultColIndicies = defaultColIndicies.concat(['level','parent','isLeaf','expanded','loaded']);
}
var columnOrder = [];
var currentColModel = grid.getGridParam('colModel');
for( var j=0; j<relativeColumnOrder.length; j++ ) {
columnOrder.push(defaultColIndicies.indexOf(currentColModel[j].name));
}
// columnOrder now contains exactly what's necessary to pass to to remapColumns
// now save columnOrder somewhere
globalColumnOrder = columnOrder;
},
...
});
// grab saved column order from cookie or something
var globalColumnOrder = [0,1,2];
// append to array if tree grid enabled
if( jQuery('#gridId').getGridParam('treeGrid') ) {
// tree grid mode adds 5 extra columns
for( var k=defaultColNames.length; k<(defaultColNames.length+5); k++ ) {
globalColumnOrder.push(k);
}
}
// restore column order
jQuery('#gridId').jqGrid('remapColumns', globalColumnOrder, true, false);
Merci, l'option de mise à jour de la fonction triable a fonctionné pour moi, associée à Grid.jqgrid ("GetGriDparam", "RemapColumns") comme suggéré par GroxX qui semblait avoir la même commande de colonne
@zishan Savez-vous s'il y a un moyen d'abandonner la permutation d'une colonne?
Ce ne serait pas beaucoup plus facile. Utilisez simplement l'élément UI pour mapper toutes les lignes et trouver leur position en utilisant une fonction d'index de tri ()?
Le commentaire donné par @msanjay est le meilleur moyen
de faire cela et voici le code qui a fonctionné pour moi. pour restaurer la commande de colonne p>
Utilisez celui-ci
$("#list").navGrid('#pager1', { edit: true, add: true, del: true });