[英]Can't get timer event handler working
On page, I have UpdatePanel with Timer that works fine: 在页面上,我有带有计时器的UpdatePanel,它工作正常:
<asp:Content ID="content" ContentPlaceHolderID="contentholder" runat="server">
<asp:ScriptManager runat="server" EnablePartialRendering="true" ID="ScriptManager"></asp:ScriptManager>
<asp:Timer ID="Timer" runat="server" Interval="10000" ></asp:Timer>
<asp:UpdatePanel ID="MainUpdatePanel" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer" EventName="Tick" />
</Triggers>
<ContentTemplate>
<!-- some content, including repeaters... -->
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
I can't get event handler in code behind working though. 但是,我无法在代码中获取事件处理程序。
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
Timer.Tick += Timer_Tick;
}
}
private void Timer_Tick(object sender, EventArgs e)
{
_someFlag = true;
}
I can see during debug that Timer.Tick +=
happens just fine, yet _someFlag
never changes its value and _someFlag = true;
我可以在调试过程中看到Timer.Tick +=
发生得很好,但是_someFlag
从不更改其值,而_someFlag = true;
never happens despite page itself updating correctly. 即使页面本身正确更新,也永远不会发生。 What am I missing? 我想念什么?
You have to add OnTick="Timer_Tick"
attribute to your timer: 您必须将OnTick="Timer_Tick"
属性添加到计时器:
<asp:Timer runat="server" id="Timer1" Interval="10000" OnTick="Timer_Tick"></asp:Timer>
And remove below code from Page_Load: 并从Page_Load中删除以下代码:
Timer.Tick += Timer_Tick;
将“计时器”放在“更新面板”和“内容模板”标签中以处理触发事件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.