Speriamo che sia veloce!jqGrid getData restituisce solo i dati per la pagina corrente
Ho una griglia modificabile utilizzando i dati "clientSide" (locali) e ora desidero iterare tutte le righe in javascript e elaborare/impacchettare i dati personalmente prima di inviarlo al server tramite una chiamata jQuery.ajax.
Il problema è che, inaspettatamente (almeno per me), utilizzando il seguente codice recupera solo le righe per la pagina della griglia correntemente visibile! Come posso ottenere TUTTE le righe nella griglia (ad esempio, ho quattro pagine di 10 record ciascuna e questo codice restituisce solo i primi 10 quando sono a pagina 1)? Devono essere presenti nel client da qualche parte perché posso scorrere le pagine e modificare le righe e i dati vengono mantenuti senza chiamare il server! :)
cacheCONF = [];
var rows= $('#myGrid').getRowData(); //<--Need to get ALL rows here!!!
var cacheRowID = 0;
for (var row in rows) {
if (rows[row].Action == 'Yes') {
cacheCONF.push({ RowID: rowID, System: rows[row].System, Action: rows[row].Action, Account: '-', Required: '-' });
rowID++;
}
}
Trovato una soluzione per cambiare temporaneamente la dimensione della pagina. Spero che ci sia una soluzione più "formale". Il codice è: var pageSize = $ ('# myGrid'). GetGridParam ('rowNum'); $ ('# myGrid'). SetGridParam ({rowNum: 10000}). Trigger ("reloadGrid"); getRowData otterrà quindi fino a 10000 righe (quindi impostarlo più in alto delle tue massime righe possibili). È quindi possibile utilizzare pageSize per impostare le dimensioni della pagina in base alle preferenze dell'utente. – jqwha