Domanda

Esiste un evento in jqGrid quando un utente utilizza la finestra di dialogo delle colonne per aggiungere o rimuovere colonne. In caso contrario, esiste un altro modo per tenere traccia del cambio di colonna. Ho bisogno di questo per mantenere le colonne selezionate quando mostro la griglia su pagine diverse.

È stato utile?

Soluzione

Welllll .... Stai mostrando tu stesso il dialogo, giusto? Quindi sei già nel tuo codice?

Suppongo che ciò che intendi veramente sia " quando l'utente fa clic su "Invia"? " In tal caso, guarda afterSubmitForm .

Altri suggerimenti

Penso che intenda la finestra di dialogo che cambia colonna dalla demo di jqGrid 3.6.

Al momento non esiste un evento per questo, ma potrebbe esserci ancora un modo. Metodo Grid columnChooser accetta la seguente opzione nell'origine jqGrid:

"done" : function(perm) { if (perm) self.jqGrid("remapColumns", perm, true) },

Prova a fornire la tua versione della funzione (vedi la pagina dimostrativa per dove chiamarla):

jQuery("#colch").jqGrid('columnChooser', {
   "done" : function(perm) { 
       if (perm) {
          jQuery("#colch").jqGrid("remapColumns", perm, true) 

          ( ... your code here ... )
       }
   }
});

Supponendo che funzioni, puoi usare il seguente codice per capire quali colonne sono nascoste:

var colModel = $("#mygrid").getGridParam("colModel");
for (var i = 0; i < colModel.length; i++){
    if (colModel[i].hidden) { 

        ... store away colModel.name somewhere ... 

    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top