我有一个使用subGridRowExpanded的jqGrid子网格。对于每个网格行,子网格包含7行。最初,当展开网格行时,子网格使用ajax检索7行数据。如果我更新子网格中的7行之一并单击save,我使用ajax将所有7行保存到服务器,并使用editRow将7行保存到子网格。
这是问题所在。如果我关闭此子网格并再次重新打开它,则子网格中的7行将填充原始加载中的数据而不进行任何更改。解决这个问题的唯一方法是在ajax调用中设置cache:false。
当我使用editRow(key:true)将行更新为saveRow()而不是通过关闭缓存再次返回服务器时,有没有办法更新缓存?
感谢。
答案 0 :(得分:0)
不能只是“更新Web浏览器的缓存”。而不是服务器应该包含在管理缓存的HTTP响应头中。如果您希望从服务器获取每个Ajax请求,则应包含在服务器响应中。例如,我几乎总是包括以下标题
Cache-Control: private, max-age=0
在为网格提供数据的服务器的响应中。 The answer显示了如何在ASP.NET中设置此类标头。
Here您可以阅读有关用于缓存数据的HTTP标头的更多信息。 The answer和the previously referenced一起提供了一些与jqGrid和jQuery.ajax结合使用的有趣细节。