Why doesn't asp:UpdatePanel refresh an Image?

江枫思渺然 提交于 2019-12-08 00:33:10

问题


I have the following UpdatePanel that gets an image from an ashx handler all of which works fine when the page is refreshed. However, when the timer fires, the label is refreshed with current time, but never the image.

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

The timer routine is:

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

Why isn't the image refreshed?


回答1:


AJAX in general is really prone to browser caching. I normally add a DateTime.Now.Ticks to the URL. Also, your UpdateMode is Conditional, you have to call Update():

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


来源:https://stackoverflow.com/questions/7472131/why-doesnt-aspupdatepanel-refresh-an-image

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!