我有一个报告区域,我通过jQuery刷新。我在区域页脚中有以下代码来设置刷新过程:
<script type="text/javascript">
var refreshId = setInterval(function(){ apex.jQuery('##REGION_ID#').trigger('apexrefresh');
}, 5000);
</script>
此操作正常,报告数据每5秒刷新一次。但是,该区域还包含一个Item,其源值通过SQL查询确定。我希望每次报表区域数据刷新时刷新此值,但触发刷新不会执行此操作。
仔细观察,报告区域div
似乎不包含项目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>
我尝试在项目ID中传递额外的.trigger()
来代替#REGION_ID#
,但令人困惑的是,它会对报告数据进行完全相同的刷新。我还尝试设置一个动态动作来触发将刷新Item的区域上的“After Refresh”,但这也有点奇怪 - 它会立即触发重复的AJAX调用并且不会更改项目值。
任何帮助表示感谢。
答案 0 :(得分:1)
您无法使用apexrefresh事件刷新项目。通过动态操作,您处于正确的轨道上:您需要“手动”检索新值。
您是否可以详细说明如何为项目设置“后刷新” - 触发动态动作?它是否具有“设置值”与“sql语句”的真实动作?你检查过ajax电话了吗?有错误吗?电话一直在重复吗?此外,检查会话状态(通过底部开发人员栏上的“会话”按钮访问),并查看其中的值是否已更改。