私たちはASP.NET WebformsとjqGridを使用しています。 Webサービスからグリッドへのデータの取得に問題はありません。しかし、saveRowを使用しようとすると、例外が発生します。私はそれが無効なJSONのためだと思っているが、saveRow()を組み込んだものを使うとグリッドが有効なJSONになると推測していただろう。 Fiddler2をを使用して、コールが使用する "アプリケーション/ JSONを;のcharset = UTF-8"jqGrid saveRow()を使用しようとしたときに無効なJSONプリミティブ
がsaveRowを呼び出す:感謝
{"Message":"Invalid JSON primitive: AccountGroupName.","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"}
ヘルプ:
$("#SupplierSettingTable").jqGrid('saveRow', rowNumber, true, '<%= ResolveClientUrl("~/Services/SupplierSettingService.asmx/SetSupplierSettingItem")%>');
をここですることは例外です。 ..
私たちのグリッドでは、 "serializeRowData:function(data){return return JSON.stringify(data);}"がありませんでした。 –
@LarsThorén:ようこそ!それでは! – Oleg
私は少し速かった。エラーが解消されても、データは決してサーバー側に渡されません。なぜこれが起こっているのでしょうか?しかし、私がJSON.stringify(data)の警告をserializeRowDataで行うと、正しい値が出力されます。 –