2012-01-18 66 views
0

我使用RadScheduler我的项目。在调度,我需要一个定期更新的,所以在我的javascript,我设置的时间间隔为呼吁RadScheduler重新绑定()为每60秒的方法。问题是,当我的用户打开高级表单时,rebind()方法会使表单消失。如何检测AdvancedForm打开和关闭事件以便我可以停止/重新启动计时器?RadScheduler更新间隔

预先感谢您。

回答

0

虽然是当RadScheduler打开它的编辑形式,称为OnClientFormCreated一个事件,没有一个当编辑窗体关闭。虽然有办法做到这一点,但你必须添加一些额外的代码。

当你想到它时,有几个不同的项目可能导致窗体关闭 - 用户可以点击窗口右上角(或左侧,取决于你的方向)的关闭图标,他们可以点击取消,或者他们可以保存。

记住这一点,我们可以看看this demo,它显示了高级编辑表单的实际操作,并且还为我们预先编写了一些JavaScript。

schedulerFormCreated()功能,我们可以做到以下几点:

 function schedulerFormCreated(scheduler, eventArgs) { 
      // Create a client-side object only for the advanced templates 
      var mode = eventArgs.get_mode(); 
      if (mode == Telerik.Web.UI.SchedulerFormMode.AdvancedInsert || 
       mode == Telerik.Web.UI.SchedulerFormMode.AdvancedEdit) { 
       // Initialize the client-side object for the advanced form 
       var formElement = eventArgs.get_formElement(); 

       var cancelButton = $("[id$='_CancelButton']"); 
       cancelButton.on("click", formClosed); 

       var templateKey = scheduler.get_id() + "_" + mode; 
       .... 

然后我们有formClosed事件:

function formClosed(eventArgs) { 
} 

在formClosed你可以创建你的逻辑为重启定时器,同时在schedulerFormCreated你可以直接调用,如果语句后停止计时权的功能。

如果你想知道我们在这里做什么,我们只是简单地抓取一个表示元素的jQuery对象实例,该实例的id以_CancelButton结尾(我们对开始部分不感兴趣),然后只是用.on() jQuery函数结合的Click事件。

为了得到保存按钮的情况下,你只需要使用_UpdateButton,并为关闭图标是_AdvancedEditCloseButton。请记住,任何以这些子字符串结尾的元素都将被选中,因此如果您想要更具体一些,我建议使用FireBug或Chrome开发工具检查高级表单的元素以获取其ID并将其插入到以上选择器。

这应该让你得到你想要的功能。