javascript - 如何使用 Javascript 禁用/启用 asp.net 计时器控件?

标签 javascript asp.net dom-events

如何使用 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;
        }
    }

最佳答案

这允许用户仅使用 JavaScript 切换 ASP 计时器控件。

我正在扩展它,但就目前而言,它工作得很好......如果我想禁用计时器并且在工作时不刷新更新面板,它很好,虽然还不够优雅,但它可以工作。

请注意,这适用于一个更新面板和一个名为 ID=tmrFillAlerts 的计时器(见下面的代码)...我列出了最基本的要求...我去掉了 CSS 和格式,这样会更容易跟随但包含所有内容,它看起来像这样......

当页面加载并且您在计时器运行时单击用户按钮时,切换看起来像这样......

enter image description here

然后,在点击上面的“关闭更新”之后,您会看到这个并且计时器停止了......

enter image description here

您可以看到上面的“关闭或打开更新”在下面的代码中作为下面的 ID=lblFlyOutTimerStatus。此外,上面的红色开/关球在下面是 ID=lblAlertsTotal。

当更新开启时...并且您单击“铃”或“信息”按钮,由于计时器的缘故,您会看到这样的弹出窗口,在我的情况下它每 60 秒更新一次(这显示了铃弹出窗口) enter image description here

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 - 如何使用 Javascript 禁用/启用 asp.net 计时器控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7550812/

相关文章:

javascript - ng2-dragula 实现拖放一侧并排序和不同的模板

c# - 连接和更新数据表

c# - 我应该在哪里创建 MVP 中的数据投影? Presenter 还好吗?

javascript - 如何检测位置哈希的变化?

javascript - IE的attachEvent中的 'this'是什么

带有 DOM 事件处理程序的 Javascript 运算符不起作用

javascript - RequireJS require() 无法解析同一子目录级别的文件名

javascript - 将 onclick 操作更改为自动操作

php - 在 IE6 中创建 XMLHTTPRequest

asp.net - 此 LINQ 语句是否容易受到 SQL 注入(inject)攻击?