【问题标题】:jqGrid update row in subGrid does not refresh cache子网格中的jqGrid更新行不刷新缓存
【发布时间】:2013-04-30 14:49:20
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • 不应该在编辑和保存记录后更新缓存吗?服务器调用有那么贵吗?

标签: ajax caching jqgrid subgrid


【解决方案1】:

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

Cache-Control: private, max-age=0

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

Here 您可以阅读更多关于用于缓存数据的 HTTP 标头的信息。 The answer 和 the previously referenced 提供了一些与 jqGrid 和 jQuery.ajax 结合使用的有趣细节。

【讨论】:

    猜你喜欢
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2019-01-23
    相关资源
    最近更新 更多