一.概述
在一些报表需求中,需要在控件中增加倒计时功能,在某个时间点后可以执行操作,也可以不执行操作,比如查询、导出功能,还需要显示还剩多少时间,也就是倒计时功能。例如,在下图中,我们将该报表限制为每天10点以后查询。
倒计时结束后,查询功能可用
这个功能是如何实现的
二.实现的想法
主要原理是使用控件的set enable(true)/set enable(false)来设置控件的可用和不可用状态。在获取时间的过程中,需要使用JS中的获取时间,使用JS的定时器函数setInterval(函数(){},time)定时获取倒计时时间,判断倒计时是否结束。
三.实现进程
1.修改模板
以自带的gettingstarted.cpt模板为例,设置初始化时,查询按钮不可用,如下图所示
2.添加倒计时控制功能
为了简化控制过程,直接在查询按钮的初始化后事件中编写JS代码,如下图所示
代码如下:
var h=10//限制时可以查询var m=00//几分钟即可查询var s=00//限制几秒查询//格式化时间函数time ostring(a){//hour var s='当有' s=parsent(a/3600)';//min s=ParSeint(a % 3600/60)' min ';//秒s=parseInt(a% 60)“秒可以检查”;返回s;} var Date 1=new Date();var date2=新日期();//设置预设的可搜索时间date 1 . sethours(h);date 1 . setMINUTES(m);date 1 . setseconds(s);//例如,time var d=(date 1-date 2)/1000;//如果它在初始化期间可用,则在(d 0 ){ this。setValue(' query ');这个。setEnable(真);} else { var btn=this//显示倒计时时间BTN . setvalue(time ostring(d));//设置不可用的BTN . SetEnable(false);//定时器函数setInterval(函数(){ //重置时间日期1=新日期();日期2=新日期();date 1 . sethours(h);date 1 . setMINUTES(m);date 1 . setseconds(s);//重置当前时间与设定时间的时间差d=(date 1-date 2)/1000;if(d 0){ BTN . SetVaLue(' query ');btn.setEnable(真);} else { BTN . setvalue(Timtostring(d));BTN . setEnable(false);} }, 1000 );}以上是边肖介绍的用JavaScript给控件增加倒计时功能的实现代码。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!