我想做一个简单的fireEvent(“ Refresh”,“”)

来自消费事件功能之外的javascript。

因为我想能够做一个setinterval,将触发事件“刷新”
并将事件名称放在网络报告中的“执行刷新查询”表中

因此最终表格会每隔1分钟刷新一次。
(我希望能够以不同的时间间隔分别刷新仪表盘中的每个表)

问题是我只能够从消耗事件功能执行fireEvent
然后使用context.fireEvent(“ Refresh”,“”),但是每次我在仪表板上发生不同的事件时,都可能会发生这种情况,并且这还不够好

最佳答案

可以使用上下文的事件管理器实例将事件引发到任何地方:

<script type="text/javascript">
     context.eventMgr().fireExternalEvent("eventName", eventValue)
</script>


如果您有权访问ic3Reporting实例,也可以触发事件:

例如:

var ic3Application = ic3.startReport(options);


在这种情况下,您可以通过以下方式触发应用事件:

<script type="text/javascript">
    //get ic3application instance
    var ic3Application = ic3.startReport(options);

    setInterval(function(){
       ic3Application.fireEvent('table1-refresh', {})
    },60000)

    setInterval(function(){
       ic3Application.fireEvent('table2-refresh', {})
    },120000)
</script>


然后只需将事件名称设置为“执行刷新查询”表的事件即可。

更新

ic3report.html中的脚本版本

<script type="text/javascript">

        var ic3root = "../"
        var ic3rootLocal = "../"

        var options = {
            root: ic3root,
            rootLocal: ic3rootLocal,

            callback: function () {
                $('#intro').remove();

                  var options = {
                            <!-- ic3-start-report-options (DO NOT REMOVE - USED TO GENERATE FILES) -->
                  };
                  var ic3Application = ic3.startReport(options);
                  setInterval(function () {
                     ic3Application.fireEvent('ic3-table', {})
                  },20000)
            };

        ic3ready(options);
</script>


更新

这是带有示例的report

07-26 02:32