Это позволяет пользователю переключать управление таймером ASP, используя ТОЛЬКО JavaScript.
Я расширяю это, но пока, это прекрасно работает ... если я хочу отключить таймер и не иметьобновлять панель обновления во время работы, это здорово, но не элегантно, но работает.
Обратите внимание, это работает с панелью обновления и таймером с именем ID = tmrFillAlerts (см. код ниже) ... Я перечисляюсамое основное ... Я вынул CSS и форматирование, чтобы было легче следовать, но со всем, что включено, это выглядит так ...
Переключатели выглядят так, когда страница загружается и вынажмите кнопку пользователя с запущенным таймером ...
![enter image description here](https://i.stack.imgur.com/Y0ovB.png)
Затем, после нажатия "Turn update OFF" выше, вы увидите это, и таймер остановится...
![enter image description here](https://i.stack.imgur.com/rp9gf.png)
Вы можете увидеть приведенные выше «Включение или выключение обновлений» в приведенном ниже коде как ID = lblFlyOutTimerStatus ниже.Кроме того, красный шарик ВКЛ / ВЫКЛ выше находится ниже как ID = lblAlertsTotal.
Когда обновления включены ... и вы нажимаете кнопку "Белл" или кнопку "Информация", вы получаете всплывающее окно, подобное этому, благодарятаймер, и он обновляется каждые 60 секунд в моем случае (это показывает всплывающее окно звонка) ![enter image description here](https://i.stack.imgur.com/CzJqC.png)
Код позади 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>
Я убрал все, кроме соответствующих элементов, чтобы он заработал ... в противном случае это было бы длиной в десять страниц !!
В настоящее время работает для меня во всех браузерах с IIS 8.5, работающим на .NETver: 4.0.30319.42000
Это незавершенная работа, которая была быстро сделана, но я нашел кое-что классное, что я поделился.Надеюсь, поможет!
Удачи !!