Ho il seguente codice di associazione degli eventi. Quando provo a salvare la riga, la funzione evento viene attivata ma non ottengo alcun dato di riga? devo ottenere interi dati e iterare per localizzare id. È corretto???
$("#jqGrid").bind("jqGridInlineAfterSaveRow", function (e, rowid, orgClickEvent) {
console.log("[Start]jqGridInlineAfterSaveRow");
console.log(rowid);
console.log(orgClickEvent);
console.log(e);
var data = $("#jqGrid").jqGrid("getGridParam", "data");
$.each(data, function(index, item){
if(item._id_ === rowid){
console.log(item);
}
});
console.log("[End]jqGridInlineAfterSaveRow");
return e.result === undefined ? true : e.result;
});
risposte:
3 per risposta № 1Si prega di includere sempre le informazioni sulla versione di jqGrid, che si utilizza (può utilizzare), e la forcella (jqGrid gratuito, commerciale Guriddo jqGrid JS o un vecchio jqGrid nella versione <= 4.7).
In ogni modo i parametri
$("#jqGrid").bind("jqGridInlineAfterSaveRow",
function (e, rowid, jqXhrOrBool, postData, options) {
var item = $(this).jqGrid("getLocalRow", rowid);
//...
}
);
Dove il parametro 3-d è booleano in caso di salvataggio di dati locali e jqXHR in caso di salvataggio dei dati sul server tramite richiesta Ajax. Il parametro postData
contiene i dati modificati, di cui probabilmente hai bisogno. Se dai da mangiare Tutti i dati sulla riga invece dei soli campi modificabili, quindi puoi utilizzare getLocalRow
per ottenere il riferimento all'articolo di interno data
, che rappresentano dati di riga locali completi.
Ho provato proprio ora l'evento jqGridInlineAfterSaveRow
in free jqGrid 4.13.6, che sviluppo, e l'evento contiene davvero i parametri, che ho descritto sopra.