2012-02-02 58 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