2017-09-26 97 views
0

在页,我的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> 

我不能在代码中获取事件处理程序的背后,虽然工作。

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; 
} 

调试是Timer.Tick +=发生就好期间,我所看到的,但_someFlag永远不会改变它的价值和_someFlag = true;尽管本身正确更新页面从未发生过。我错过了什么?

+0

可能是因为您没有为'Timer_Tick'函数添加'new EventHandler' – Bojje

+2

是'Timer' starte d在哪里? –

+0

可能这个链接将帮助你完全https://stackoverflow.com/questions/12073703/call-tick-event-when-timer-starts –

回答

1

你必须OnTick="Timer_Tick"属性添加到您的计时器:

<asp:Timer runat="server" id="Timer1" Interval="10000" OnTick="Timer_Tick"></asp:Timer> 

而且从Page_Load中删除下面的代码:

Timer.Tick += Timer_Tick; 
1

把 '定时器' 内部 '更新面板' & '内容模板' 标签处理触发器事件

+0

不,还是一样的结果。 – user2363676