2012-02-02 60 views
0

在内嵌编辑模式下,单击“保存”会引发错误。jqgrid - saveRow url抛出异常

var rowSave = function(id){  
    jQuery("#myjqgrid").jqGrid('saveRow',id,{ 
     "succesfunc": function(response) { 
      return true; 
     },         
     "url": myjqgrid.json 
     "mtype": "GET" 
    }); 
} 

是不是因为url设置为json

基本上,我第一次加载网格时得到了JSON响应。在内联编辑模式下编辑行后,编辑的数据应发送到服务器。当数据保存在服务器上时,它应该返回更新的JSON,并且网格行数据应该使用更新的JSON响应进行更新。

回答

1

看着这个文档页面:

在节saveRow它说:

网址:如果定义,该参数从替换editurl参数选项数组。如果设置为'clientArray',则数据不会发布到服务器,而只会保存到网格(大概是为了以后手动保存)。

和下方的位:

除了当URL(或editurl)是“clientArray”,当调用此方法,从所述特定行的数据发布到格式名称服务器:值,其中名称是来自colModel的名称,值是新值。

因此,您似乎需要提供将接受数据的服务器URL。在同一页面上的一些示例中,您可以看到如下所示的内容:

... 
editurl: "server.php", 
... 
+0

感谢您的回复。我确实浏览了wiki上的文档。这是否意味着在我的'rowSave()'中,url的值应该是服务器端文件?这个文件将发回JSON? jqgrid将如何更新? – techlead 2012-02-02 03:42:15

+0

这应该是服务器端页面的url,它将接受已更改的数据,然后将其存储在数据库中等等。您可以使用'jQuery(“#grid_id”)。jqGrid('saveRow',“rowid”,false,'clientArray');'变量在本地执行所有操作(即'url'应该是''clientArray'')。当行被保存时,应该不需要从服务器进行更新,因为状态没有改变 - 您期望发生什么样的更新?我想如果你只是想重新加载网格出于某种原因,你可以使用'successfunc'回调。 – 2012-02-02 04:19:55

+0

数据更新。所以,如果网格中的一列有“客户端A”的值,但它被编辑为“客户端B”。我在'url'中指定了服务器端页面。该服务器端页面将更改后的数据存储在数据库中,并吐出新的JSON响应。 jqgrid会自动从JSON响应中获取编辑的数据吗?这是否意味着当(1)首先加载jqgrid和(2)保存行时的url值应该相同? – techlead 2012-02-02 04:27:38