2011-11-14 12 views
19

Aggiungo le righe manualmente a jqGrid utilizzando addRowData e l'ordine di queste righe deve essere mantenuto.jqGrid: disabilita l'ordinamento

Tuttavia, durante il paging, tutte le righe vengono riordinate per ordinare in base alla prima colonna visibile della griglia.

Ho disattivato tutte le opzioni di ordinamento che posso trovare documentate.

Come posso impedire tutto l'ordinamento e mantenere l'ordine delle righe su tutte le pagine?

Codice

codice di inizializzazione in uso:

$("#grid").jqGrid({ 
    autowidth: false, 
    cmTemplate: {sortable: false}, 
    colModel: config.gridColumnModel 
    height: 600, 
    pager: "#aggregationToolbar", 
    sortable: false, 
    shrinkToFit: false 
    url: "fetch", 
    viewrecords: false 
}); 

impostazioni predefinite utilizzate (sovrascritto dalle opzioni del codice di inizializzazione di cui sopra):

$.extend($.jgrid.defaults, { 
    altClass: "altRow", 
    altRows: true, 
    autowidth: true, 
    cmTemplate: { 
    align: "center", 
    title: false 
    }, 
    datatype: "local", 
    gridview: true, 
    height: "auto", 
    hidegrid: false, 
    jsonReader: { 
    page: function(obj) { return 1; }, 
    records: function(obj) { return obj.length; }, 
    repeatitems: false, 
    root: "objects", 
    total: function(obj) { return 1; } 
    }, 
    loadonce: true, 
    rowList: [50, 100, 250], 
    rowNum: 100, 
    sortable: true, 
    toppager: true, 
    viewrecords: true 
}); 
+0

Quale valore ha il parametro 'sortname' di jqGrid? Perché è necessario utilizzare 'addRowData'? Quale 'datetype' usi? È meglio se includi il codice che usi. – Oleg

+0

"sortname" non viene usato affatto. "addRowData" viene utilizzato a causa di alcune necessarie post-elaborazione necessarie. Il "tipo di dati" è locale. –

+0

Nell'esempio di codice che hai postato il 'datatype' non è definito, quindi verrà utilizzato' datatype: 'xml''. Usi impostazioni predefinite? Quale? Se si utilizza il tipo di dati ''local'', è possibile utilizzare il parametro' data' di jqGrid che funziona molto più rapidamente e supporta tutte le funzionalità locali come il paging, l'ordinamento e il filtraggio. Potresti includere una piccola demo con i dati di test che possono essere utilizzati per riprodurre il tuo problema? – Oleg

risposta

18

Per le versioni che supportano cmTemplate, è possibile utilizzare:

cmTemplate: { sortable: false }


cmTemplate: definisce un insieme di proprietà che sostituiscono i valori predefiniti in colModel. Ad esempio, se vuoi rendere tutte le colonne non ordinabili, puoi specificare solo una proprietà qui invece di specificarla in tutte le colonne in colModel

17

seconda del jqGrid versione che devi rendere sortable: false su ogni colonna specificatamente + esplicitamente ...

Per i riferimenti, vedere here, here e here.