jqgrid fügt Zeile hinzu und sendet Daten zum Einfügen an webservice

Ich konnte Daten von meinem DB mit jQuery / Ajax von einem Webservice in das jQGrid ziehen. Jetzt möchte ich hinzugefügt / bearbeitet Daten zurück zum Webservice senden. Ich habe einige Beispiele mit PHP und dem Befehl editorl: gesehen. Wird das auch für Webservices funktionieren (so wie ich die Daten ursprünglich heruntergezogen habe)?

Ich habe die Beispiele mehrmals durchgesehen. Ich habe sogar eine andere Frage gefunden , die ähnlich zu dem ist, was ich frage, aber ich kann keine wirklichen Beispiele finden, wie ich das tun kann, was ich brauche. Gibt es welche?

:AKTUALISIERT:

jQuery(document).ready(function () { jQuery("#list").jqGrid({ datatype: processrequest, mtype: 'POST', jsonReader: { root: "ListExercise", //arry containing actual data page: "Page", //current page total: "Total", //total pages for the query records: "Records", //total number of records repeatitems: false, id: "ID" //index of the column with the PK in it }, colNames: ['Id', 'Exercise'], colModel: [ { name: 'exercise_id', index: 'exercise_id',editable:false }, { name: 'exercise_value', index: 'exercise_value',editable:true } ], caption: 'MyFitnessApplication', pager: '#pager', rowNum: 10, rowList: [10, 20, 30], sortorder: "desc", viewrecords: true, height: '250px', loadonce: true, editurl: "../webService/exercise_ws.asmx/insertRecord" }).navGrid('#pager', { edit: true, add: true, del: false }); }); 

Wie Sie sehen können, habe ich das editurl-Tag hinzugefügt. Das scheint mein Webservice zu nennen. Jetzt fehlt mir, wie die eigentlichen Parameter an den Webservice übergeben werden. Ich vermisse etwas und Hilfe wird geschätzt!

Zunächst können Sie einige Standardoptionen ändern, die zum Hinzufügen / Bearbeiten verwendet werden:

 jQuery.extend(jQuery.jgrid.edit, { ajaxEditOptions: { contentType: "application/json" }, recreateForm: true, serializeEditData: function (postData) { if (postData.exercise_value === undefined) { postData.exercise_value = null; } return JSON.stringify(postData); } }); 

(wobei JSON.stringify die in http://www.json.org/js.html definierten functionen sind). Dann werden die Daten, die an den Server gesendet werden, JSON-codiert. Fast die gleichen Einstellungen können für das Löschen verwendet werden

 jQuery.extend(jQuery.jgrid.del, { ajaxDelOptions: { contentType: "application/json" }, serializeDelData: function (postData) { if (postData.exercise_value === undefined) { postData.exercise_value = null; } return JSON.stringify(postData); } }); 

Jetzt können Sie insertRecord wie folgt definieren

 [WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json)] public int ModifyData (string exercise_value, string oper, string id) { if (String.Compare (id, "_empty", StringComparison.Ordinal) == 0 || String.Compare (oper, "add", StringComparison.Ordinal) == 0) { // TODO: add new item with the exercise_value and return new id // as the method result } else if (String.Compare (oper, "edit", StringComparison.Ordinal) == 0) { // TODO: modify the data identified by the id } else if (String.Compare (oper, "del", StringComparison.Ordinal) == 0) { // TODO: delete the data identified by the id } } 

Sie haben nicht geschrieben, welcher Typ eine exercise_id : Integer oder String. Wenn Sie String-IDs verwenden, sollte der obige Code etwas geändert werden.