ASP.NET:ImageButton图像不在UpdatePanel内更新

时间:2016-04-19 06:43:25

标签: asp.net ajax web asp.net-ajax updatepanel

我在 UpdatePanal OnClick事件中有 ImageButton ,某些进程在同一张图片上执行。比图像保存在同一位置。

问题是,后面的代码执行成功,但结果没有显示在网页上

ASP代码:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdatePanel ID="UpdatePanel1" ChildrenAsTriggers="True" UpdateMode="Always" runat="server">
        <ContentTemplate>  
            <asp:ImageButton  ID="ImageButton1" runat="server" AutoPostBack="true" ImageUrl="~/Sel_Img/test.jpg" OnClick="ImageButton1_Click" />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="ImageButton1" />
        </Triggers>
    </asp:UpdatePanel>
  

背后的代码

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
   using (Bitmap bitmap = new Bitmap((Server.MapPath(@"/Sel_Img/test.jpg")))
   Bitmap bmp = Some_Process(bitmap);
   bitmap.Dispose();
   bmp.Save(Server.MapPath(@"/Sel_Img/test.jpg"));
   ImageButton1.ImageUrl = "../Sel_Img/test.jpg";
}

当我手动重新加载页面时,结果按预期显示,但Onclick事件未显示结果,I.E 图像中的更改未显示

1 个答案:

答案 0 :(得分:1)

由于图像位于浏览器缓存中,因此未显示更改。要强制刷新,每次修改图像时都可以向URL附加不同的查询字符串:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    ...
    ImageButton1.ImageUrl = "~/Sel_Img/test.jpg?" + DateTime.Now.Ticks.ToString();
}