JQGrid setRowData Nach inline Bearbeiten
Ich habe ein problem mit der Aktualisierung einer Zeile nach einem inline Bearbeiten.
Meine ColModel ist:
colModel: [
{ name: 'Email', index: 'Email', editable: true },
{ name: 'ReferenceEmail', index: 'ReferenceEmail', editable: true },
//hidden: true, editable: true, editrules: { edithidden: true}
{ name: 'Title', index: 'Title', editable: true, edittype: "select",
editoptions: { value: "Mr:Mr;Mrs:Mrs;Ms:Ms;Doctor:Doctor;Sir:Sir"} },
{ name: 'Forename', index: 'Forename', editable: true },
{ name: 'Surname', index: 'Surname', editable: true },
{ name: 'Study_Manager', index: 'Study_Manager', editable: true,
edittype: "select", editoptions: { value: "True:True;False:False"} }
]
Ich planen die referenceemail col-Wert = die neue Ausgabe der E-Wert, also ich habe:
ondblClickRow: function (id, ri, ci) {
lastSelUser = id;
$("#UserGrid").editRow(id, true, false, reload);
}
welche wiederum ruft reload onsuccess Bearbeiten,
function reload(result) {
var cell = $("#UserGrid").getCell(lastSelUser, 'Email');
var newEmail = $(cell).val();
$("#UserGrid").saveRow(lastSelUser, false);
$("#UserGrid").setRowData(lastSelUser, { ReferenceEmail: newEmail });
var ref = $("#UserGrid").getCell(lastSelUser, 'ReferenceEmail');
alert($(cell).val());
alert($(ref).val());
}
Nun meine Referenz-E-Mail nicht aktualisiert - die Warnung der cell value
gibt richtig, aber die Warnung der ref(referenceemail) value
ist nicht definiert und ich habe geprüft, ob die id ist in der Tat richtig.
Habe ich versucht, indem Sie die saverow
nach der setRowData
, aber das macht keinen Unterschied für das Ergebnis.
Wieder,
Ich bin sehr dankbar für jede und alle Einsicht in das problem.
Grüße,
Byron Cobb
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht sicher, ob ich das richtig verstanden deine Frage.
Scheint es mir, dass die Verwendung verwenden sollten
aftersavefunc
parameter dereditRow
stattsuccesfunc
(siehe http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow). Die Veranstaltungaftersavefunc
aufgerufen werden nach der die Daten gespeichert werden, in das jqGrid. Die Veranstaltungsuccesfunc
wird nur aufgerufen werden, nachdem$.ajax
(keine lokalen Daten Bearbeiten-Unterstützung) und sofort nach der Anfrage abgeschlossen , bevor die Daten gespeichert werden in der Startaufstellung.Den
aftersavefunc
event bekommen als Parameterrowid
- id der geänderten Zeile und dieres
- Antwort vom server. Also, wenn dieReferenceEmail
Feld kann eingestellt werden, indem der server basiert aufEmail
Wert können Sie mit den Ergebnissen. SetzenReferenceEmail
Feld können Sie nur verwenden,wo
data
ist der neue Wert vonReferenceEmail
.Einer teilweisen Lösung gefunden wurde, hat für alle Fragen. Das jqGrid editRow akzeptiert die folgenden Parameter:
.setRowData scheint nicht zu funktionieren in der succesfunc, aber es funktioniert in aftersavefunc, also mein neuer Anruf
$("#UserGrid").editRow(id, true, false, false, false, false, reload);
statt$("#UserGrid").editRow(id, true, false, reload);
Aus der JQGrid Dokumentation: