2011-09-19 296 views
2

我有以下的UpdatePanel從ashx處理程序獲取圖像,當頁面刷新時,所有這些都可以正常工作。但是,當定時器啓動時,標籤會隨着當前時間刷新,但不會顯示圖像。爲什麼asp:UpdatePanel不刷新圖像?

<asp:UpdatePanel runat="server" id="TimedPanel" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:Image ID="Image1" runat="server" Height="218px" 
      ImageUrl="~/getImage.ashx?cam=1" Width="303px" BorderWidth="10px" /> 
     <asp:Timer ID="UpdateTimer" runat="server" interval="1250" 
      ontick="UpdateTimer_Tick" /> 
     <asp:Label ID="DateStampLabel" runat="server" /> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" /> 
    </Triggers> 
</asp:UpdatePanel> 

計時器例程是:

protected void UpdateTimer_Tick(object sender, EventArgs e) 
{ 
    DateStampLabel.Text = DateTime.Now.ToString(); 
} 

爲什麼不是圖像刷新?

回答

5

AJAX通常很容易瀏覽器緩存。我通常在URL中添加一個DateTime.Now.Ticks。此外,您的UpdateMode是有條件的,您必須致電Update()

protected void UpdateTimer_Tick(object sender, EventArgs e) 
{ 
    DateStampLabel.Text = DateTime.Now.ToString(); 
    Image1.ImageUrl += "&CacheBuster=" + DateTime.Now.Ticks.ToString(); 
    TimedPanel.Update(); 
} 
+0

感謝您的建議...我做了更改,但仍然沒有更新。我修改了你的建議,以便ImageUrl不會變得非常大:Image1.ImageUrl =「〜/ getImage.ashx?cam = 2&CacheBuster =」+ DateTime.Now.Ticks.ToString(); ...其他建議? – Dave31836

+0

似乎現在正在工作...... ashx中的某些東西引起了異常,並且似乎禁用了進一步的刷新。 – Dave31836