2013-04-30 75 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相结合的有趣的细节。