2012-01-28 17 views
5

È normale o mi manca qualcosa?jqGrid restituisce solo i record come definito in rowNum se si utilizza loadonce: true

Se si imposta loadonce: true, la mia griglia restituisce solo 5 record.

Ma se cambio al loadonce: false, la griglia sta ottenendo tutti i record

Il mio codice è sotto.

$("#leave-detail-grid").jqGrid({ 
    url:'grid/grid_leave_detail.php', 
    datatype: 'xml', 
    mtype: 'GET', 
    colNames:['Date','Day','Approver','Leave Type','Status','Purpose | Reason'], 
    colModel :[ 
     {name:'start_date', index:'start_date', width:80, editable:false, align:"left", editrules:{required:true}}, 
     {name:'day', index:'day', width:80, editable:false, align:"left", editrules:{required:true}}, 
     {name:'sup', index:'sup', width:130, editable:false, align:"left", editrules:{required:true}}, 
     {name:'desc', index:'desc', width:130, editable:false, align:"left", editrules:{required:true}}, 
     {name:'status', index:'status', width:80, editable:false, align:"center", editrules:{required:true}}, 
     {name:'purpose', index:'purpose', width:180, editable:false, align:"left", editrules:{required:true}}  
    ], 
    height: 'auto', 
    pager: '#leave-detail-pager', 
    pgbuttons: true, 
    pginput: 'Yes', 
    pgtext: 'Yes', 
    rowNum:5, 
    rowList:[20,40,100,200,400], 
    sortname: 'start_date', 
    sortorder: 'asc', 
    loadonce: true, // to enable sorting on client side 
    viewrecords: true, 
    gridview: true, 
    caption: 'Search Purpose' 
}); 
$("#leave-detail-grid").jqGrid('navGrid',"#leave-detail-pager", 
     {edit:false,add:false,del:false,search:true}, 
     {zIndex:5234},{zIndex:5234},{zIndex:5234},{zIndex:5234} 
); 

risposta

3

Grazie Jonathan. Come ho fatto a perdere quella demo :)

aggiungo il valore colModel rowTotal: 2000, -1 non funziona, questo mostrerà 2000 RECS

quindi aggiungere il seguente per il mio codice del server

$totalrows = isset($_REQUEST['totalrows']) ? $_REQUEST['totalrows']: false; 
if($totalrows) { 
$limit = $totalrows; 
} 

E per carica tutti i record di cui abbiamo bisogno per modificare il codice del server per sovrascrivere il parametro rowTotal.

$result = mysql_query("SELECT COUNT(*) AS count FROM leaveform WHERE emp_id='$emp_id' AND company_id='$company_id'"); 
$row = mysql_fetch_array($result,MYSQL_ASSOC); 
$count = $row['count']; 
$totalrows = $count; 
$limit = $totalrows; 
1

rowNum:5, significa che la griglia utilizzerà solo 5 righe.

loadonce: true significa che verrà caricato solo una volta. Disabilita anche il cercapersone.

Sulla base di questa configurazione, quella griglia utilizza solo 5 righe, e dal momento che non sarà più caricare dal server, sarà sempre la stessa 5.

Qui il link al Wiki, che ha l'ultimo documentazione opzioni: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

+0

Grazie. Ho migliaia di dati e voglio caricarlo una volta, se aumento la rigaNum, aumenterà anche la mia dimensione della griglia e sarà davvero brutta. Ci deve essere un modo per manipolare la data sul lato client per enormi set di dati. – genpet

+0

@genpet Imposta rowNum su -1 per rimuovere il limite. Quindi, abilitare il cercapersone e caricare tutti i dati contemporaneamente. Dovrebbe funzionare bene. – Jonathan

+0

@genpet Vai a questo link: http: //www.trirand.it/blog/jqgrid/jqgrid.html Quindi, sul lato sinistro, scorri verso il basso fino a "Novità nella versione 3.7". La seconda opzione è "Carica subito dal server". Questo esempio sembra mostrare ciò che stai descrivendo. – Jonathan

1

Se si utilizza loadonce: true il server deve restituire tutte le righe. i dati devono essere ordinati in base ai parametri sortname e sortorder che verranno inviati al server come sidx e sord.

Viene visualizzata la prima pagina dei dati restituiti. Sarai comunque in grado di utilizzare il cercapersone locale, l'ordinamento e il filtraggio (ricerca) dei dati.

Potrebbe essere importante definire il parametro sorttype per consentire l'ordinamento locale corretto dei dati.

Se il problema persiste, è necessario aggiungere la domanda con la risposta XML dal server. Quindi altri lettori della tua domanda sarebbero in grado di riprodurre il problema.

L'ultima osservazione: si utilizzano valori molto strani per le opzioni pginput e pgtext di jqGrid. Dovresti preferire i tipi di opzioni descritti in the documentation.

+0

Grazie. rowTotal è la chiave e un piccolo ritocco sul codice del server. Grazie anche a 'pginput' e 'pgtext' – genpet

+0

@genpet: il server può ignorare 'rowTotal' e restituire solo * tutti * i record. È solo una raccomandazione al server, ma non è molto importante per il funzionamento di jqGrid. Nella prima pagina verranno visualizzate le righe 'rowNum' e * il paging dovrebbe funzionare * insieme a' loadonce: true'. Posso ripetere che, se hai ancora problemi, devi aggiungere la tua domanda con i dati XML che usi (sono sufficienti 2-3 pagine di dati). – Oleg

0

{ rowNum: 0 } per impostare nessuna riga limite ...

Problemi correlati