在 apexrefresh 期间/之后刷新区域的项目
Posted
技术标签:
【中文标题】在 apexrefresh 期间/之后刷新区域的项目【英文标题】:Refresh a region's items during/after apexrefresh 【发布时间】:2012-07-26 10:28:19 【问题描述】:我有一个通过 jQuery 刷新的报告区域。我有以下带有区域页脚的代码来设置刷新过程:
<script type="text/javascript">
var refreshId = setInterval(function() apex.jQuery('##REGION_ID#').trigger('apexrefresh');
, 5000);
</script>
这可以正常工作,并且报告数据每 5 秒刷新一次。但是,该区域还包含一个项目,其源值是通过 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>
我已经尝试做一个额外的.trigger()
调用,而不是#REGION_ID#
,而是传递项目的ID,但令人困惑的是,这对报告数据进行了完全相同的刷新。我还尝试设置一个动态操作以在将刷新项目的区域上的“刷新后”触发,但这也有一些奇怪的事情 - 它会毫无延迟地触发重复的 AJAX 调用并且不会更改项目值。
任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:您不能使用 apexrefresh 事件刷新项目。您在动态操作的正确轨道上:您将需要“手动”检索新值。
您能否详细说明您是如何为您的项目设置“刷新后”触发的动态操作的?用“sql语句”有没有真正的“设定值”动作?你检查了ajax调用吗?有什么错误吗?电话是否不断重复?另外,检查项目的会话状态(通过底部开发者栏上的“会话”按钮访问),看看那里的值是否发生了变化。
【讨论】:
谢谢,我使用“刷新”作为动态操作,而不是“设置值”。我认为因为要求 Apex 刷新一个项目会导致它所在的区域被刷新,这导致了无限循环的刷新。 啊,确实是这样!以上是关于在 apexrefresh 期间/之后刷新区域的项目的主要内容,如果未能解决你的问题,请参考以下文章