2009-11-13 272 views

回答

5

,因爲你已經在使用它使用來自AJAX工具包的定時器控制:

<asp:Timer ID="tmrPolling" runat="server" Interval="10000" ontick="tmrPolling_Tick"></asp:Timer> 

添加一個觸發器到您的更新面板,如:

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="tmrPolling" EventName="Tick" /> 
</Triggers> 

然後,只需執行tmrPolling_Tick處理程序:

protected void tmrPolling_Tick(object sender, EventArgs e) 
{ 
    // Change your update panel controls and data here. 
} 

請勿在更新面板內容ar中添加計時器EA。

+0

+1你打敗了我,並有了更好的答案。 – 2009-11-13 23:45:16

2

在客戶端腳本中,您可以創建一個計時器並調用__doPostBack()來強制刷新更新面板。請see this article for details

0

爲了清晰/懶惰而保留代碼的重複性。

function pageLoad(sender, args) 
{ 
    setTimeout(refreshPanel, 5000); // 5 seconds 
} 

function requestEnd(sender, args) 
{ 
    // Check for AJAX request errors if you'd like 
    setTimeout(refreshPanel, 5000); // 5 seconds 
} 

function refreshPanel() 
{ 
    __doPostBack('UpdatePanelIDHere', '');" 
} 

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(requestEnd); 
+0

我更喜歡Kelsey的解決方案。少手工JavaScript瘋狂 – zincorp 2009-11-13 23:51:14

+0

爲什麼不只是'setInterval' – 2009-11-14 00:00:19