6
votes

JQGRID: Y a-t-il un événement pour quand les colonnes sont réorganisées?

J'utilise la fonction de réorganisation de la colonne dans JQGRID

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


0 commentaires

7 Réponses :


1
votes

Le Demo pour le plug-in JQGriD SDICABLE SDIBLABLE dit que toutes les options et événements disponibles du widget triable peut être utilisé.

Si c'est vrai, alors vous devriez aller juste à l'aide du Mettre à jour l'événement Cela fait partie du plugin de tri.


1 commentaires

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?



2
votes

Ceci fonctionne:

[édité]

$ ('. UI-JQGrid-hbox Table', $ ('#' + gridid) .Parents ('. UI-JQGrid-View'))) )})

où vous devez transmettre votre gridid ​​et créer cette fonction onGridColumnRoCarded bien sûr.


1 commentaires

N'a pas travaillé pour moi du tout. Cela ne semble pas que la liaison d'événement se produise avec succès.



3
votes

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: xxx

profiter!


0 commentaires

9
votes

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: xxx pré>

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);


2 commentaires

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?



0
votes

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 ()? XXX


0 commentaires

0
votes

Le commentaire donné par @msanjay est le meilleur moyen de faire cela et voici le code qui a fonctionné pour moi. xxx

pour restaurer la commande de colonne xxx


0 commentaires

0
votes

Utilisez celui-ci

$("#list").navGrid('#pager1', { edit: true, add: true, del: true });


0 commentaires