Почему asp: UpdatePanel не обновляет изображение? - PullRequest
2 голосов
/ 19 сентября 2011

У меня есть следующая UpdatePanel, которая получает изображение из обработчика ashx, который прекрасно работает при обновлении страницы.Однако при срабатывании таймера метка обновляется с указанием текущего времени, но не изображения.

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

Почему изображение не обновляется

1 Ответ

5 голосов
/ 20 сентября 2011

AJAX в целом действительно склонен к кешированию в браузере.Я обычно добавляю DateTime.Now.Ticks к URL.Кроме того, ваш UpdateMode является условным, вы должны позвонить Update():

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