请教个问题,我在使用AsyncFileUpload控件实现上传图片后立即显示刚上传图片的功能,我一开始的时候让image控件显示个初始图片,让上传成功后显示新上传的图片,出现的问题就是图片上传到了目标文件夹,但image控件却还显示的是初始图片,这是怎么回事?
我上传服务器的代码如下所示:
 protected void AsyncFileUpload1_UploadedComplete1(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
 {
       if (AsyncFileUpload1.HasFile)
        {
              AsyncFileUpload1.SaveAs(Server.MapPath("../upload") + "\\" + criterion_ID + "." + type);
              this.Image_new.ImageUrl = "../upload/" + criterion_ID + "." + type;
                 url_1 = "../upload/" + criterion_ID + "." + type;
               ScriptManager.RegisterClientScriptBlock(this.AsyncFileUpload1, this.AsyncFileUpload1.GetType  (), "img", "top.document.getElementById('" + this.Image_new.ClientID + "').src='" + url_1 + "';", true);
}
}

解决方案 »

  1.   

    图片缓存
    Image_new.ImageUrl ="?"+DateTime.Now;
      

  2.   

    图片缓存的方法我尝试过了,还有一个问题就是,AsyncFileUpload主要是有两方法,一个是onuploadedcomplete方法,它是用来上传图片的,代码如上;再一个就是浏览器端OnClientUploadComplete方法,它主要用来显示我上传的图片的,我要问的是,这两个方法有没有可传递参数的方法,因为我在onuploadedcomplete上传图片后,想把图片的ID传到OnClientUploadComplete中根据ID提取图片进行显示????
      

  3.   

    再一个就是我在浏览器中的JS方法中写了下面的这种使用时间截的图片缓存方法,但是当执行到if (url01.IndexOf("?") > 0)
    时却报“对象不支持此属性和方法”的错误,但我在服务器端使用的时候却没问题,这是怎么回事??
    var url01="../upload/MM000002.jpg";  
    //var date= new Date(); 
    if (url01.IndexOf("?") > 0)
    {
       url01 = url01 + "&" + "001";
    }
    else
    {
       url01 = url01 + "?"  + "001";
    }