/ / jqGrid zdarzenie: jqGridInlineAfterSaveRow rowdata jest pusty? - jquery, jqgrid

Zdarzenie jqGrid: jqGridInlineAfterSaveRow wierszdata jest pusty? - jquery, jqgrid

Mam następujący kod powiązania zdarzenia. Kiedy próbuję zapisać wiersz, funkcja zdarzenia zostaje uruchomiona, ale nie otrzymuję żadnych danych wiersza? muszę pobrać całe dane i iterować, aby znaleźć identyfikator. Czy to jest poprawne???

$("#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;
});

wprowadź opis obrazu tutaj

Odpowiedzi:

3 dla odpowiedzi № 1

Zawsze dołączaj informacje o wersji jqGrid, której używasz (możesz użyć), oraz rozwidlenie (darmowe jqGrid, Reklama w telewizji Guriddo jqGrid JS lub stary jqGrid w wersji <= 4.7).

W jakikolwiek sposób parametry

$("#jqGrid").bind("jqGridInlineAfterSaveRow",
function (e, rowid, jqXhrOrBool, postData, options) {
var item = $(this).jqGrid("getLocalRow", rowid);
//...
}
);

Gdzie parametr 3-d jest wartością logiczną w przypadku zapisywania danych lokalnych i jqXHR w przypadku zapisywania danych na serwerze za pośrednictwem żądania Ajax. Parametr postData zawiera zmodyfikowane dane, których prawdopodobnie potrzebujesz. Jeśli karmisz wszystkie dane o wierszu zamiast tylko pól edytowalnych, możesz użyć getLocalRow aby uzyskać odniesienie do elementu wewnętrznego data, które reprezentują pełne dane lokalnego wiersza.

Właśnie przetestowałem to wydarzenie jqGridInlineAfterSaveRow w darmowym jqGrid 4.13.6, które rozwijam, a wydarzenie naprawdę zawiera parametry, które opisałem powyżej.