我想做一个简单的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。