1

我有一个通过 jQuery 刷新的报告区域。我有以下带有区域页脚的代码来设置刷新过程:

<script type="text/javascript">
var refreshId = setInterval(function(){ apex.jQuery('##REGION_ID#').trigger('apexrefresh');
}, 5000);
</script>

这可以正常工作,并且报告数据每 5 秒刷新一次。但是,该区域还包含一个项目,其源值是通过 SQL 查询确定的。我希望每次刷新报表区域数据时也刷新此值,但触发的刷新不会这样做。

仔细观察,报告区域div似乎不包含 Item HTML,因此在刷新期间被换出的 DOM 部分不包含该项目。该项目出现在名为的同级表节点内apex_layout_#REGION_ID#

<div class="rc-content-main">
    <table id="apex_layout_7017903473906209" class="formlayout" border="0" summary="">
    <div id="report_7017903473906209_catch">
    <script type="text/javascript">
</div>

我已经尝试做一个额外的.trigger()调用,而不是传递项目的 ID,#REGION_ID#但令人困惑的是,这对报告数据进行了完全相同的刷新。我还尝试设置一个动态操作以在将刷新项目的区域上的“刷新后”触发,但这也有一些奇怪的事情 - 它会毫无延迟地触发重复的 AJAX 调用并且不会更改项目值。

任何帮助表示赞赏。

4

1 回答 1

1

您不能使用 apexrefresh 事件刷新项目。您在动态操作的正确轨道上:您将需要“手动”检索新值。

您能否详细说明您是如何为您的项目设置“刷新后”触发的动态操作的?有没有真正的“设置值”和“sql语句”的动作?你检查了ajax调用吗?有什么错误吗?电话是否不断重复?另外,检查项目的会话状态(通过底部开发者栏上的“会话”按钮访问),看看那里的值是否发生了变化。

于 2012-07-26T10:37:40.050 回答