0

我有一个使用 subGridRowExpanded 的 jqGrid subGrid。对于每个网格行,子网格包含 7 行。最初,当展开网格行时,子网格使用 ajax 检索 7 行数据。如果我更新子网格中的 7 行之一并单击保存,我使用 ajax 将所有 7 行保存到服务器,并使用 editRow 将 7 行保存到子网格。

这是问题所在。如果我关闭此 subGrid 并再次重新打开它,则 subGrid 中的 7 行将填充来自原始加载的数据而没有任何更改。解决这个问题的唯一方法是在 ajax 调用中设置 cache:false 。

当我使用 editRow (key : true) 将行更新为 saveRow() 而不是通过关闭缓存再次返回服务器时,有没有办法更新缓存?

谢谢。

4

1 回答 1

0

不能只是“更新网络浏览器的缓存”。而不是服务器应包含在管理缓存的 HTTP 响应标头中。如果您希望从服务器获取每个 Ajax 请求,您应该将其包含在服务器响应中。例如,我几乎总是包含以下标题

Cache-Control: private, max-age=0

在为网格提供数据的服务器的响应中。答案显示了如何在 ASP.NET 中设置此类标头。

在这里,您可以阅读有关用于缓存数据的 HTTP 标头的更多信息。答案前面引用的一起提供了一些与 jqGrid 和 jQuery.ajax 结合起来很有趣的细节。

于 2013-04-30T16:08:42.293 回答