我有一个使用subGridRowExpanded的jqGrid subGrid。对于每个网格行,子网格包含7行。最初,当网格行展开时,子网格使用ajax检索7行数据。如果我更新子网格中7行中的一行并单击保存,我将使用ajax将所有7行保存到服务器,并使用editRow将这7行保存到子网格。
这是问题所在。如果我关闭这个subGrid,然后再重新打开它,subGrid中的7行将被原始load中的数据填充,没有任何更改。解决这个问题的唯一方法是在ajax调用中设置cache:false。
当我使用editRow (key : true)将行更新为saveRow()而不是通过关闭缓存再次返回服务器时,有没有办法更新缓存?
谢谢。
发布于 2013-05-01 00:08:42
一个人不能只是“更新缓存”的网络浏览器。相反,服务器应该在HTTP响应报头中包含管理缓存的报头。如果您希望每个Ajax请求都从服务器获取,则应该将其包含在服务器响应中。例如,我实际上总是包含以下标头
Cache-Control: private, max-age=0在为网格提供数据的服务器响应中。The answer展示了如何在ASP.NET中设置这样的标头。
Here您可以阅读更多关于用于缓存数据的HTTP头的信息。The answer和the previously referenced一起提供了一些与jqGrid和jQuery.ajax相结合的有趣的细节。
https://stackoverflow.com/questions/16302810
复制相似问题