为啥 asp:UpdatePanel 不刷新图像?
Posted
技术标签:
【中文标题】为啥 asp:UpdatePanel 不刷新图像?【英文标题】:Why doesn't asp:UpdatePanel refresh an Image?为什么 asp:UpdatePanel 不刷新图像? 【发布时间】:2011-11-20 06:57:56 【问题描述】:我有以下 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】:一般来说,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();
【讨论】:
感谢您的建议...我进行了更改,但仍然没有更新。我修改了您的建议,使 ImageUrl 不会变得非常大: Image1.ImageUrl = "~/getImage.ashx?cam=2&CacheBuster=" + DateTime.Now.Ticks.ToString();... 还有其他建议吗?跨度> 现在似乎可以工作了...... ashx 中的某些东西导致了异常,它似乎禁用了进一步的刷新。以上是关于为啥 asp:UpdatePanel 不刷新图像?的主要内容,如果未能解决你的问题,请参考以下文章
asp.net中点击按钮页面不刷新的效果如何实现~~!求详细!
ASP.NET UpdatePanel:在 UpdatePanel 更新上注入 Javascript
ASP.NET DropDown SelectedIndexChanged 未在 Firefox 中使用 UpdatePanel 触发