我使用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並將其插入到以上選擇器。
這應該讓你得到你想要的功能。