2017-09-26 74 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