MasterPage.master
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="10000">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
MasterPage.master.vb
Protected Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
'some sql select codes
con.Open()
Dim result As Integer = DirectCast(cmd.ExecuteScalar(), Int32) 'ExecuteScalar() only return 1 row and ignore rest
con.Close()
If result > 0 Then
'Page.ClientScript.RegisterStartupScript(Me.GetType(), "AlertMessageBox", "alert('hello world');", True)
'Page.ClientScript.RegisterStartupScript(Me.GetType(), "AlertMessageBox", "alert('" & result & " hello world');", True)
ScriptManager.RegisterStartupScript(Me.UpdatePanel1, Me.UpdatePanel1.GetType(), "AlertMessageBox", "alert(‘hello world’);", True)
End If
End Sub
基本上我有一个Timer
控件在固定的时间间隔内运行SQL Select,如果result
大于0,则会有一个弹出警报。
如果我不使用UpdatePanel
但没有UpdatePanel
,则代码正常工作,只要Timer
控件运行,页面就会刷新,导致用户正在处理的任何内容迷路了。
编辑:进一步澄清
Timer1_Tick
每隔10秒运行一次。问题在于弹出窗口,浏览器上没有弹出窗口。
答案 0 :(得分:0)
将OnTick="Timer1_Tick"
添加到您的.master
标记。
此外,您不需要,但您可以尝试添加:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>