jqgrid agrega fila y envía datos al servicio web para insertar

Pude obtener datos de mi base de datos usando jQuery / Ajax desde un servicio web en jQGrid. Ahora me gustaría enviar datos agregados / editados al servicio web. He visto algunos ejemplos usando PHP y el comando editurl :. ¿Funcionará eso también para los servicios web (por ejemplo, cómo obtuve los datos originalmente)?

He revisado los ejemplos varias veces. Incluso encontré otra pregunta que es similar a lo que estoy preguntando, sin embargo, no puedo encontrar ningún ejemplo real de cómo hacer lo que necesito. ¿Hay alguno?

:ACTUALIZADO:

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 }); }); 

Como puede ver, agregué la etiqueta editurl. Eso parece llamar a mi servicio web. Ahora me falta cómo pasar los parámetros reales al servicio web. Me falta algo, ¡y la ayuda es apreciada!

En primer lugar, puede cambiar algunas opciones predeterminadas utilizadas para agregar / editar:

 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); } }); 

(donde JSON.stringify son las funciones definidas en http://www.json.org/js.html ). Entonces los datos, que serán enviados al servidor, serán codificados JSON. Casi la misma configuración se puede utilizar para eliminar

 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); } }); 

Ahora puede definir insertRecord como sigue

 [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 } } 

No escribe qué tipo tiene exercise_id : entero o cadena. Si usa identificadores de cadena, el código anterior se debe cambiar un poco.