2013-04-30 73 views
0

我有一個使用subGridRowExpanded的jqGrid子網格。對於每個網格行,子網格包含7行。最初當網格行被展開時,子網格使用ajax檢索7行數據。如果我更新子網格中的7行之一併單擊保存,我使用ajax將所有7行保存到服務器,並使用editRow將7行保存到子網格。jqGrid更新在子網格中的行不刷新緩存

這是問題所在。如果關閉此子網格並再次重新打開它,則子網格中的7行將充滿來自原始加載的數據,而不會進行任何更改。唯一的解決方法是在ajax調用中設置cache:false。

當我使用editRow(key:true)更新行來saveRow()而不是通過關閉緩存再次返回服務器時,有沒有辦法更新緩存?

謝謝。

+0

編輯並保存記錄後不應該更新緩存嗎?服務器通話費用高嗎? – Mark 2013-04-30 15:47:02

回答

0

不能只是「更新網頁瀏覽器的緩存」。而不是服務器應該包含在管理緩存的HTTP響應頭中。如果您希望從服務器獲取每個Ajax請求,則應在服務器響應中包含這些請求。例如,我幾乎總是包含以下標題

Cache-Control: private, max-age=0 

在爲網格提供數據的服務器的響應中。 The answer顯示瞭如何在ASP.NET中設置此類標頭。

Here您可以閱讀有關用於緩存數據的HTTP標頭的更多信息。 The answer連同the previously referenced提供了一些與jqGrid和jQuery.ajax相結合的有趣的細節。