jqGrid con tipo de ordenamiento personalizado

Estoy usando jqGrid 3.7.2 con datos locales. Para algunas columnas, los tipos de clasificación predeterminados no son suficientes. Necesito proporcionar un tipo de clasificación personalizado, que entiendo de la documentación es posible. Sin embargo, no sé cómo hacerlo funcionar. El siguiente código es mi mejor bash de hacer que funcione, aunque no puedo hacer que llame a la función de clasificación personalizada. La idea es ordenar el campo ‘Posn’ en el orden ‘GK’ -> ‘DEF’ -> ‘MID’ -> ‘STR’. Aquí está el código que me gustaría poner en práctica:

   Table Testbed         $().ready(function() { tableToGrid("#playerTable", { datatype: "local", sortable: true, hidegrid: false, multiselect: false, altRows: true, height: "100%", width: "155px", shrinkToFit: true, rowNum: 100, colNames: ['Posn','Name'], colModel: [ {name:'Posn', index:'Posn', width:100, sorttype: function(cell) { if (cell=='GK') return '0'; if (cell=='DEF') return '1'; if (cell=='MID') return '2'; if (cell=='STR') return '3'; } }, {name:'Name', index:'Name', width:200, sorttype:"text"} ] }); });    
PosnName
GKAlmunia
GKFabianski
DEFCampbell
DEFClichy
MIDDenilson
MIDDiaby
STRArshavin
STRBendtner

Probablemente leas sobre el uso de sorttype como una función en la respuesta de Tony a mi hilo http://www.trirand.com/blog/?page_id=393/help/custom-local-sort-with-respect-of-the- función-como-índice / . Su problema podría resolverse muy fácilmente. Mi sugerencia de utilizar el index como una función para la clasificación personalizada de datos jqGrid locales funciona bien en la versión 3.7.1, pero no más en la versión 3.7.2 de jqGrid. La función sorttype como función se implementa en jqGrid después del lanzamiento de la versión 3.7.2.

Para poder utilizar sorttype como función, debe descargar la última versión de jqGrid desde http://github.com/tonytomov/jqGrid/tree/master . Esta es una versión sin comprimir de jqGrid. Si no está familiarizado con la versión sin comprimir de jqGrid, le recomendaré que lea http://www.trirand.com/jqgridwiki/doku.php?id=wiki:how_to_install#development_installation para averiguar cuál de los archivos js y en qué orden deberías incluir En http://www.ok-soft-gmbh.com/jqGrid/CustomSorttype1.htm puede encontrar un ejemplo de trabajo de su código donde la función personalizada realmente funciona.

Según esta publicación en el foro , solo se llama a un tipo de sorttype personalizado cuando se inicializa la grilla y no durante el evento onSortCol :

Tal como lo entiendo ahora mismo, si tengo un tipo de ordenación personalizado como sorttype: sortDate, la función sortDate solo se invocará cuando jqGrid se inicialice y no el evento enSortCol. ¿Es la única forma de hacer una llamada en SortC SortDate es manualmente sobre montar el eventoSortCol y escribir el código tedioso que hace esto y actualiza la cuadrícula en consecuencia? ¿Por qué no definir el tipo de ordenado: sortDate simplemente pasa el evento OnSortCol automáticamente? Me refiero a cuando el jqGrid se inicializa, ordena correctamente, pero cuando llamo al evento debe hacer algún tipo de ordenamiento. Por qué lo pregunto es porque mi función sortDate no tiene ningún código que realmente actualice jqGrid. simplemente devuelve 1, -1 o 0. se usa en algo fuera de jqGrid …

¿Esto explica el comportamiento que estás viendo?