jquery - jqgrid 重新加载时不更新数据

标签 jquery caching jqgrid

我有一个 jqgrid,它从 xml 流加载数据(由 django 1.1.1 处理):

jQuery(document).ready(function(){
  jQuery("#list").jqGrid({
    url:'/downtime/list_xml/',
    datatype: 'xml',
    mtype: 'GET',
    postData:{site:1,date_start:document.getElementById('datepicker_start').value,date_end:document.getElementById('datepicker_end').value},
    colNames:[...],
    colModel :[...],
    pager: '#pager',
    rowNum: 25,
    rowList:[10,25,50],
    viewrecords: true,
    height: 500,
    caption: 'Click on column headers to reorder'
  });

    $("#grid_reload").click(function(){
        $("#list").trigger("reloadGrid");
        }); 
    $("#tabs").tabs();

    $("#datepicker_start").datepicker({dateFormat: 'yy-mm-dd'});
    $("#datepicker_end").datepicker({dateFormat: 'yy-mm-dd'});
...

和 html 元素:

<th>Start Date:</th>
<td><input id="datepicker_start" type="text" value="2009-12-01"></input></td>
<th>End Date:</th>
<td><input id="datepicker_end" type="text" value="2009-12-03"></input></td>
<td><input id="grid_reload"  type="submit" value="load" /></td>

当我单击 grid_reload 按钮时,网格会重新加载,但是当它完成后,它会显示与之前完全相同的数据,即使 xml 经过测试以针对不同的时间戳返回不同的数据。

我已经使用alert(document.getElementById('datepicker_start').value)检查了触发重新加载事件时日期输入中的值是否正确传递。

您知道为什么数据不更新吗?也许是缓存或浏览器问题?

最佳答案

在我看来你应该更换

postData:{
    site:1,
    date_start:document.getElementById('datepicker_start').value,
    date_end:document.getElementById('datepicker_end').value
},

postData:{
    site:1,
    date_start: function() { return document.getElementById('datepicker_start').value; },
    date_end: function() { return document.getElementById('datepicker_end').value;}
},

更新: 在您当前的解决方案中,postData 的值在您创建 jqGrid 时计算一次。在带有函数 jqGrid 的 postData 中,将 postData 转发到 jQuery.ajax 以及在每个 jQuery.ajax 期间(在 >$("#list").trigger("reloadGrid");) 将在 jQuery.ajax 调用时读取 datepicker 中的值。

关于jquery - jqgrid 重新加载时不更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2826478/

相关文章:

javascript - 使用 jQuery 设置页面标题

json - 即使选中,模型属性也始终从复选框获取错误值。数据是来自ajax调用的json

android - 如何正确使用com.octo.android.robospice来缓存位图

python - 在网站上运行 Python 脚本(在后台)

javascript - 设置 postdata 的回调而无需重新加载网格?

javascript - 使用 document.execCommand 和浏览器兼容性格式化文本

jquery - 滚动可拖动项目的内容时禁用 jQuery 拖动

ios - UITableViewCells 中的 UIImageViews 正在缓存的单元格中重新创建自己

jqgrid - 如何在 jqgrid 高级搜索窗口中启用输入

javascript - 为什么悬停不能处理 jqgrid 中的彩色行