gpt4 book ai didi

asp.net - 使用 JavaScript 禁用和重新启用 asp.net Timer 控件

转载 作者:行者123 更新时间:2023-11-28 03:01:19 26 4
gpt4 key购买 nike

我有一个 ASP.Net 网页,其中包含 ASP:Timer 控件

<asp:Timer ID="TimerRefresh" runat="server" Interval="5000" Enabled="true" OnTick="TimerRefresh_Tick">
</asp:Timer>

它通过页面中的 asp:UpdatePanel 链接到,以便异步刷新页面的特定部分。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="TopRow" id="TopRowPlace" runat="server">
... More HTML Code here...
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TimerRefresh" />
</Triggers>
</asp:UpdatePanel>

问题在于,当用户执行某些操作时,包含异步更新的 HTML 的 DIV 标记可能会被隐藏(通过在样式中将显示属性设置为 none)。发生这种情况时,无需更新内容,因为它是隐藏的。

JavaScript 中是否有一种方法可以禁用计时器运行和异步回发,并且确实可以在 DIV 标记再次可见时重新启用它?

最佳答案

我查看了由我的一个 WebForm 上的计时器添加到 BODY.onload 事件的 JavaScript。我认为修改起来并不容易,除非您真的想覆盖计时器的属性(并将其与更多客户端 JavaScript 混合)。那么,当您说:

时,您的 DIV 中会发生什么?

...which is updated asychronously can be hidden (...) when a user performs certains actions.

这些操作是在服务器上执行的吗?如果是这样,您可以禁用服务器上的计时器来响应 DIV 中的事件。
我在 WebForm 中有一个带有复选框的 UpdatePanel; CheckBox AutoPostBacks 并具有 CheckedChanged 事件处理程序。如果选中复选框,则启用计时器,并且 UpdatePanel 的内容会在每次勾选时更新 - 如果未选中复选框,则禁用计时器。即使计时器被禁用,自动回发也能正常工作。
如果您在 DIV 中使用客户端 JavaScript,我仍然认为 AutoPostBack 将是最简单的解决方案。

关于asp.net - 使用 JavaScript 禁用和重新启用 asp.net Timer 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com