Come si può creare una griglia ma non caricare alcun dato?jqGrid: come impostare la griglia su NON caricare inizialmente tutti i dati?
Se ometto l'opzione url
, viene attivata la richiamata loadError
.
Attualmente impostiamo url:NoData.json
dove NoData.json è un file statico senza righe in esso.
Il problema è nella nostra chiamata loadComplete
e vorremmo visualizzare un messaggio se la griglia non contiene dati, eccetto che non vogliamo visualizzare questo messaggio sul carico iniziale. Attualmente abbiamo gestisce questo come segue:
//jqGrid load complete handler
function loadComp(grid) {
if (grid.getGridParam("url") != "NoData.json" && grid.getGridParam("records") == 0) {
setStatus("Your search did not return any results");
}
}
Questo sembra solo un po 'hacky .. vorrebbe avere solo la griglia non caricare alcun dato inizialmente.
Qualche idea?
Provato che - problema è con 'datatype: local' e no' url', il mio callback 'loadComplete' è ancora chiamato. Speravo in un approccio che non attivasse la richiamata - o almeno un modo più pulito nel callback per determinare che questa è l'ora iniziale in cui viene caricata la griglia. –
@Marcus: di causa l'handle di evento 'loadComplete' sarà chiamato in tutte le situazioni. Se vuoi mostrare un messaggio solo in caso di caricamento dal server, puoi visualizzare il messaggio solo se 'datatype' è uguale a" json "come in http://stackoverflow.com/questions/3564898/jqgrid-programatically-select -grid-row/3571392 # 3571392 – Oleg
La soluzione 'grid.getGridParam ('datatype') ===" json "' ha funzionato bene .. –