2012-01-18 82 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並將其插入到以上選擇器。

這應該讓你得到你想要的功能。