P998_SESS_INFO
是我的经典报告P998_REFRESH
是隐藏的项目P998_REFRESH_RATE
是LOV,静态值为STATIC:
我在P998_REFRESH
的更改集值上定义了类型为java脚本表达式的动态操作:
$x('P998_REFRESH').value = $x('P998_REFRESH_RATE').value;
HTML标头:
<script type="text/javascript">
var interval = `$`v("P998_REFRESH");
// refresh every 10 seconds
setInterval("jQuery('#P998_SESS_INFO').trigger('apexrefresh');", interval);
</script>
但这不起作用。有什么建议吗?谢谢
答案 0 :(得分:2)
两个问题:
1 - 此代码不会启动项目的事件更改。 (这会更改页面上的值,但不会触发动态操作)。 而不是这个
$x('P998_REFRESH').value = $x('P998_REFRESH_RATE').value;
试试这个
$s('P998_REFRESH', $x('P998_REFRESH_RATE').value);
2 - 您需要清除之前的setInterval值。设置新的间隔是不够的。因此,每次调用setInterval
时都需要存储一个变量 var sintervalid = setInterval("jQuery('#P998_SESS_INFO').trigger('apexrefresh');", interval);
并重置
clearInterval(sintervalid);
sintervalid = setInterval("jQuery('#P998_SESS_INFO').trigger('apexrefresh');", interval);
如果我要这样做,我会这样试试:
1 - 我在html标题中创建了一个全局变量,设置了默认值:
<script type="text/javascript">
var sIntervalId = setInterval(function(){
jQuery('#P998_SESS_INFO').trigger('apexrefresh');
}, 30000);
</script>
2 - 我在更改存储间隔
的项目时创建动态操作动态行动: 更改项目P998_REFRESH_RATE
真实行动: 执行javascript代码:
clearInterval(sIntervalId);
sIntervalId = setInterval(function(){
jQuery('#P998_SESS_INFO').trigger('apexrefresh');
}, $x('P998_REFRESH_RATE').value);
***我没有对此进行测试,但这或多或少都会这样。