나는 매 2 초마다 틱하는 Timer를 가지고 있고 끊임없이 변화하는 백분율 값을 얻습니다. 이것은 라벨에 표시 될 때 잘 동작합니다. 같은 일을하고 싶지만 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>
이 서버 측 타이머가 클라이언트 측 컨텍스트를 어떻게 업데이트합니까? – David
@David - magic :) –
ASPX 페이지의 업데이트 패널에서. – Apollo