我使用RadScheduler我的项目。在调度,我需要一个定期更新的,所以在我的javascript,我设置的时间间隔为呼吁RadScheduler重新绑定()为每60秒的方法。问题是,当我的用户打开高级表单时,rebind()方法会使表单消失。如何检测AdvancedForm打开和关闭事件以便我可以停止/重新启动计时器?RadScheduler更新间隔
预先感谢您。
我使用RadScheduler我的项目。在调度,我需要一个定期更新的,所以在我的javascript,我设置的时间间隔为呼吁RadScheduler重新绑定()为每60秒的方法。问题是,当我的用户打开高级表单时,rebind()方法会使表单消失。如何检测AdvancedForm打开和关闭事件以便我可以停止/重新启动计时器?RadScheduler更新间隔
预先感谢您。
虽然是当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并将其插入到以上选择器。
这应该让你得到你想要的功能。