1

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()代わりにアイテムのIDを渡す追加の呼び出しを試みました#REGION_ID#が、紛らわしいことに、これはレポートデータのまったく同じ更新を行います。また、項目を更新する領域で「更新後」に起動するように動的アクションを設定しようとしましたが、これも奇妙なことを行います-遅延なしで繰り返し AJAX 呼び出しを起動し、項目の値を変更しません。

どんな助けでも感謝します。

4

1 に答える 1

1

apexrefresh イベントを使用してアイテムを更新することはできません。動的アクションで正しい軌道に乗っています。新しい値を「手動で」取得する必要があります。

「更新後」にトリガーされるアイテムの動的アクションをどのように設定したか詳しく説明していただけますか? 「SQL文」で「値を設定する」という真のアクションはありますか?ajax 呼び出しを検査しましたか? エラーはありますか?コールは繰り返されますか? また、アイテムのセッション状態 (下部の開発者バーの「セッション」ボタンからアクセス) を確認し、値が変更されているかどうかを確認します。

于 2012-07-26T10:37:40.050 に答える