簡體   English   中英

如何使用Javascript禁用/啟用asp.net計時器控件?

[英]How to disable/enable asp.net timer control using Javascript?

如何使用Javascript禁用/啟用asp.net計時器控件? 我的代碼是:(但不工作)

 function timeroff() 
 {
      var b = document.getElementById('Timer1');
      if (b) {
            b.disabled = true;
        }
    }
    function timeron() {
        var b = document.getElementById('Timer1');
        if (b) {
            b.disabled = false;
        }
    }

這允許用戶使用ONLY JavaScript切換ASP計時器控件。

我正在擴展它,但是現在,它工作得很好......如果我想要禁用計時器並且在工作時不更新更新面板,它很棒,不優雅,但它可以工作。

請注意,這適用於更新面板和名為ID = tmrFillAlerts的計時器(請參閱下面的代碼)...我列出了最基本的要求...我拿出了CSS和格式,所以它會更容易遵循但是所有這些,看起來像這樣......

當頁面加載時,切換看起來像這樣,並且在計時器運行時單擊用戶按鈕...

在此輸入圖像描述

然后,在單擊上面的“關閉更新”后,您會看到此計時器並且計時器已停止...

在此輸入圖像描述

您可以在下面的代碼中看到上面的“關閉更新或關閉更新”ID = lblFlyOutTimerStatus。 此外,上面的RED ON / OFF球低於ID = lblAlertsTotal。

當更新開啟...並且您點擊貝爾或信息按鈕時,由於計時器而得到這樣的彈出按鈕,並且在我的情況下每60秒更新一次(這顯示了鈴鐺彈出) 在此輸入圖像描述

C#背后的代碼......

// Loads the DataList from the TIMER component
private void udpAlertBar(object sender, EventArgs e) {
    // Do whatever you want here on timer tick ... 

    // Write the last BELL alert time...
    lblAlertTime.Text = "Last update time:<br/>" + DateTime.Now.ToString("MM/dd/yyy hh:mm:ss tt");
    // Load the BELL and INFO icon drop down lists
    FillBellInfoDataLists();
    // Update red alert ballz .... 
    UpdateAlertBallTotals();
}

ASP頁面代碼......

<asp:UpdatePanel id="udpAlertItemUpdater" runat="server">
  <ContentTemplate>
     <!-- NOTE: The update panel must wrap just this area (UPDpnl kills the javascript for some reason otherwise)  -------->
     <asp:Label id="lblTimerState" runat="server" Text="on" />
        <ul>
         <li>     
           <a href="javascript:void(0)" onclick="toggleUpdateTimer()"> 
            <asp:Label ID="lblFlyOutTimerStatus" runat="server" Text="Turn updates OFF" />         
           </a>
         </li>
        </ul>
        <asp:Timer ID="tmrFillAlerts" runat="server" OnTick="udpAlertBar" Interval="60000" Enabled="true"/>
  </ContentTemplate>
</asp:UpdatePanel>

JavaScript代碼......

<script type="text/javascript">
    function toggleUpdateTimer() {
        // Gets the timer control on the page named “tmrFillAlerts” 
        var timerState = $find(“tmrFillAlerts”);
        // Gets the label I use for an alert ball on an icon on the page …
        var timerStatusRedAlertBall = document.getElementById(‘lblTimerState’);
        // Gets the menu item I have on the alert icon that drops down when clicked …
        var timerStatusFlyOutLabel = document.getElementById(‘lblFlyOutTimerStatus’);
        // Toggle the timer when the menu item is clicked ….
        if (timerState.get_enabled() == true) { 
            stopUpdateTimer(); // NOTE: stop the timer, then disable …
            timerState.set_enabled(false);
            timerStatusRedAlertBall.innerHTML = “OFF”;
            timerStatusFlyOutLabel.innerHTML = “Turn Updates ON”;}
        else { 
            timerState.set_enabled(true); // NOTE: Enable the timer, then start ….
            startUpdateTimer();
            timerStatusRedAlertBall.innerHTML = “on”;
            timerStatusFlyOutLabel.innerHTML = “Turn Updates OFF”;}
    }

    function stopUpdateTimer() {
            var timer = $find(“tmrFillAlerts”);
            timer._stopTimer();
    }

    function startUpdateTimer() {
            var timer = $find(“tmrFillAlerts”);
            timer._startTimer();
    }
</script>

除了相關的項目之外我刪除了所有內容以使其工作......否則這將是十頁長!

目前在運行.NET ver:4.0.30319.42000的IIS 8.5中適用於所有瀏覽器

這是一項正在進行的工作,很快就完成了,但發現了一些很酷的東西,我以為我會分享。 希望能幫助到你!

祝好運!!

只要計時器不在母版頁上,下面的工作就會起作用,因為你會收到一條錯誤,指出“控件集合無法修改,因為控件包含代碼塊(即<%...%>)。]”這個javascript在Master頁面的標題中。

    function enableTimer() {
    var timer = Sys.Application.findComponent(‘<%= Timer1.ClientID %>’);
        timer.set_enabled(true);
    }
    function disableTimer() {
        var timer = Sys.Application.findComponent(‘<%= Timer1.ClientID %>’);
        timer.set_enabled(false);
    }

請參閱: http//weblogs.asp.net/andrewfrederick/controlling-the-asp-net-timer-control-with-javascript了解更多詳情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM