我有以下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();
}
为什么图像没有刷新?
答案 0 :(得分:5)
AJAX通常很容易出现浏览器缓存。我通常会在网址中添加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();
}