2011-07-12 24 views
5

Aspx.net sayfamda bir AsyncFileUpload denetimi kullanıyorum. Bu kontrol bir güncelleme panelinin içinde çalışıyor.AjaxToolkit'i temizleme AsyncFileUpload denetimi

Dosyaları eşzamansız olarak sunucuya başarılı bir şekilde yükleyebilirim.

Sorunum, her dosya yüklendikten sonra sayfanın tamamını yenileyememektir. Bu nedenle, en son yüklenen dosyayı nasıl temizleyeceğimi anlayabilmem gerekir, böylece kullanıcı yüklemek için yeni bir dosya seçtiğinde, eski dosya kontrolde görünmez ve kontrol son yüklemesini ViewState'de tutmaz.

Bu http://www.aspsnippets.com/Articles/Clear-contents-of-AsyncFileUpload-Control-after-upload-and-page-revisit.aspx'u denedim ancak sunucuyu uyumsuzluk sonrası yeniden gönderim yaptığımda yalnızca html'yi temizler, AsyncFileUpload denetimi hala yüklenen son dosyaya sahiptir.

Sunucu tarafında temizlemenin bir yolu var mı? Belki de devlet ile ilgili bir şey var mı?

Herhangi bir yardım için teşekkür ederiz, Teşekkürler.

cevap

5

İstemci tarafında son yüklenen dosya girişini temizlemek için OnClientUploadComplete olayını kullanabilirsiniz. Dosya karşıya yükleme tamamlandığında ve geri gönderme gerçekleştiğinde AsyncFileUpload1.HasFile, false'u döndürecektir. aspx sayfasında

:

<asp:AsyncFileUpload ID="AsyncFileUpload1" OnClientUploadComplete="success" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" runat="server" /> 

ve JavaScript etiketlerinin içinde:

function success() {   
    var fu = document.getElementById("AsyncFileUpload1"); 
    document.getElementById("AsyncFileUpload1").innerHTML = fu.innerHTML; 
} 
+0

sayesinde Waqas için! Bu bana bugün yardımcı oldu :-) –

+1

'fonksiyon başarısı (gönderici, args) {$ (sender._element) .find ('input'). Val (''); } ' –

0

Sunucu tarafı takas benim için çalıştı:

protected void FileUploadComplete(object sender, EventArgs e) 
{ 
    string filename = System.IO.Path.GetFileName(AsyncFileUpload1.FileName); 
    AsyncFileUpload1.PostedFile.SaveAs(Server.MapPath("Uploads/") + filename); 

    ClearContents(sender as Control); 
} 

private void ClearContents(Control control) 
{ 
    for (var i = 0; i < Session.Keys.Count; i++) 
    { 
     if (Session.Keys[i].Contains(control.ClientID)) 
     { 
     Session.Remove(Session.Keys[i]); 
     break; 
     } 
    } 
} 

referans: Fer tarafından söz konusu bağlantı.

0
<asp:AsyncFileUpload ID="AsyncFileUpload1" OnClientUploadComplete="success" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" runat="server" /> 

ve bir tüm modern tarayıcılarda perfectl çalışır

function success(sender, args) { $(sender._element).find('input').val(''); } 

, teşekkürler " Scotty.NET"