2011-05-17 61 views
0

我使用的jqGrid與MVC 2這樣的:jqGrid的形式編輯問題

jQuery("#extension_grid").jqGrid({ 
     url: '/Extension/Report', 
     datatype: "json", 
     direction: "rtl", 
     height: "auto", 
     jsonReader: { root: "rows", page: "page", total: "total", records: "records", repeatitems:  false, userdata: "UserData" }, 
     colModel: 
     [ 
     { name: 'id', label: 'داخلی', key: true, search: true, width: 55 }, 
     { name: 'assigned_user', label: 'کاربر', width: 90, editable: true }, 
     { name: 'creation_date', label: 'تاریخ ایجاد', width: 100, formatter: 'date', formatoptions: { newformat: 'Y-m-d H:i:s'} } 
     ], 
     rowNum: -1, 
     pager: '#extension_pager', 
     sortname: 'id', 
     viewrecords: true, 
     sortorder: "asc", 
     caption: "داخلی‌ها", 
     editurl: '/Extension/MyEdit' 
    }); 
    jQuery("#extension_grid").jqGrid('navGrid', '#extension_pager', { edit: true, add: true, del: true }, {}, {}, {}, { multipleSearch: true });  

當我選擇一行,然後單擊編輯按鈕會出現一個對話框,我可以編輯的行。提交後,數據成功發佈到editurl。但更改不會保存到網格客戶端。我應該手動保存更改客戶端嗎? 我試着用數據類型本地和它的作品!我該怎麼辦?使用json數據和表單編輯有什麼問題嗎?

回答

1

你描述的情況看起來很奇怪。對於「添加」和「編輯」表單,默認設置爲reloadAfterSubmit:true。這意味着在提交「編輯」表單之後,例如網格包含將被重新加載。您可以根據FiddlerFirebug驗證是否發生網格重新加載。因此,無論您的服務器部分'/ Extension/MyEdit'是否不保存數據,或者服務器'/ Extension/Report'都不會獲取刷新的數據。你有服務器上的某種數據緩存嗎?

因此,你應該分析你有更直接的問題。如果你不能自己解決問題,你應該更新/追加你的問題以獲得更多的附加信息。

+0

thanx爲您的答案。問題是我認爲jqGrid工作的方式。我認爲jqgrid在將編輯數據發送到服務器並接收成功之後在本地應用更改(客戶端)。但是在從服務器重新加載數據之後,確實會發生更改。我正在測試,並沒有將數據反映到數據庫中。 – user590747 2011-05-18 13:39:17

+0

@ user590747:你能看到服務器發回**舊數據**嗎?爲什麼你的服務器應用程序這樣做?順便說一下,您可以在「navGrid」的「編輯」選項中設置'reloadAfterSubmit:false'(請參閱'prmEdit'參數[here](http://www.trirand.com/jqgridwiki/doku.php?id=wiki :導航#定義))。在成功提交到「/ Extension/MyEdit」後,jqGrid將更新網格數據 – Oleg 2011-05-18 14:40:20