2012-12-31 53 views
0

我在更新面板中有一個asyncfileupload控件。Ajax AsyncFileUpload觸發服務器代碼,但不更新客戶端

在UploadedComplete中,我將文件保存到服務器。

protected void ImageFileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
{ 
    System.Threading.Thread.Sleep(5000); 
     if (ImageFileUpload.HasFile) 
     { 
      Extension= System.IO.Path.GetExtension(ImageFileUpload.FileName); 

      TempImageUpload(ImageFileUpload.FileName.ToString(), Extension.Value); 
      FileImage.ImageUrl = "~/Temp/" + Session["ID"].ToString() + Extension.Value; 
      RemoveImageButton.Visible = true; 
     } 
} 

該文件成功上傳並激發正確的服務器端代碼。

但是不要更新viewstate和控件。

private string Extension 
{ 
    get { 
     if(ViewState["Extension"]==null) 
      return string.Empty; 
     else 
     return (string)ViewState["Extension"]; } 
    set { ViewState["Extension"] = value; } 
} 

回答

0

我將文件保存在UploadedComplete事件中。

protected void ImageFileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
    { 
    if (ImageFileUpload.HasFile) 
    { 
     ImageFileUpload.SaveAs(Request.PhysicalApplicationPath + "Temp\\" + Session["ID"].ToString() + extension); 
    } 
    } 

和fot在客戶端更改控件,我使用OnClientUploadComplete。

function uploadComplete(sender, args) { 
     var filename = args.get_fileName(); 
     document.getElementById('<%= Extension.ClientID %>').value = "." + filename.split('.').pop(); 
     var btn = document.getElementById('<%= RemoveImageButton.ClientID %>') 
     btn.style.visibility = 'visible'; 
    } 
相關問題