使用asp.net和vb.net作为后面的代码,是否有可能在System.Timers.Timer已事件事件上更新UpdatePanel?我知道有一个计时器控件可用,但请帮我用Systems.Timer.Timer帮我做 - 我有理由这样使用它。
每次调用处理我的计时器的已用事件的子程序时,我都会有一个文字我更新的文字。更新文本后,我在UpdatePanel上调用update()。什么都没发生。我知道有很多方法可以在客户端使用Javascript来实现这一点,但是如果可能的话我想远离它并保持服务器端,我觉得无论如何Ajax UpdatePanel都试图为我做什么。我觉得UpdatePanel应该完全符合我的需要,只更新我的页面的一小部分,在这种情况下我的文字存储。非常感谢你。
以下是我的标记的一部分:
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Literal ID="timerLit" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
这是我的vb:
Protected Sub onTimerElapsed(source As Object, e As ElapsedEventArgs)
timerLit.Text = "Hello"
UpdatePanel1.update()
End Sub
我尝试了很多东西。我知道我的onTimerElapsed子程序被调用,我知道文字填充了正确的文本。 update()似乎没有做任何事情。再次感谢!
答案 0 :(得分:1)
UpdatePanel仅适用于客户端到服务器。您描述的场景是不可能的(至少不是您正在使用的技术)。那是因为服务器无法连接到客户端。
有两种可能性:
SignalR为您实现客户端和服务器端管道,并使用当前浏览器中提供的最佳技术。
您可以在此找到有关SignalR的更多信息:http://signalr.net/
答案 1 :(得分:0)
而不是试图去服务器 - &gt;客户来自客户 - &gt;服务器
因此在javascript中创建一个计时器,每隔XXX秒调用一次代码隐藏。
像这样。
var myTimer = setInterval(myMethod, 5000);
function myMethod( )
{
//this will repeat every 5 seconds
//you can reset counter here
}
您可以清除计时器并通过调用
停止调用您的方法clearInterval(myTimer);