我有一个计时器,每 2 秒滴答一次并获取不断变化的百分比值,当它显示在标签中时效果很好。我想要同样的事情,但要使用 javascript 在消息框中显示,第一次显示正常,但当值更改时,警报弹出窗口中的值保持不变。
protected void TimerProgress_Tick(object sender, EventArgs e)
{
percent = max_time.PercentGoalMetToday(i.ToString());
lbPercent.Text = percent; //WORKS
JavaScriptMethod();
}
protected void JavaScriptMethod()
{
StringBuilder sb = new StringBuilder();
sb.Append("<script type = 'text/javascript'>");
sb.Append("function main(){");
sb.Append("alert('");
sb.Append(percent);
sb.Append("')};");
sb.Append("var myVar = setInterval(function () { main() }, 4000);");
sb.Append("</script>");
ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());
}
ASPX
<asp:UpdatePanel ID="UpdatePanelProgressBar" runat="server">
<ContentTemplate>
<asp:Label ID="lblPercent" runat="server" Text="" CssClass="Percent"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer" />
</Triggers>
</asp:UpdatePanel>
<asp:Timer ID="Timer" Interval="2000" runat="server" OnTick="TimerProgress_Tick">
</asp:Timer>
最佳答案
我将使用 SignalR 来实现此功能,SignalR 旨在让您的服务器与浏览器高效、实时地交换数据。
关于c# - Javascript 不适用于 ASP.NET 上的 Timer Tick 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20222117/