在 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 期间/之后刷新区域的项目的主要内容,如果未能解决你的问题,请参考以下文章

即使在提供区域之后,aws-sdk v3 lambda 区域也缺失

在插槽运行期间刷新/更新 GUI

更新期间休眠不刷新

vba修改INI中指定的项

当实体未更改时,Hibernate 在刷新期间保持实体

Oracle - 物化视图在完全刷新期间仍可访问。这是如何运作的?