2015-09-02 5 views
8

AsyncFileUpload non funziona all'interno di Listview Insert, Edit Itemtemplate e EmptyData Template.AsyncFileUpload Inside Listview Insert, Edit Itemtemplate e EmptyData Template non funzioneranno

sopra è la mia client funzioni collaterali

function AttachmentUploadSuccessful() { 
    debugger; 
    var textError = $(".AttachmentError").text(); 
    if (textError.length > 0) { 
     var text = $(".AttachmentError"); 
     text.innerText = text.textContent = textError; 
     sender._onError(textError); // it will raise the OnClientUploadError event 
     return; 
    } else { 

     //alert(" File attachment is uploaded successfully."); 
     //CODE TO REMOVE FILE AND BACKGROUND COLOR OF FILE UPLOADER 
     $('.ModelBackgroundforCreateItem').hide(); 
     $('.PopupPanel').hide(); 
     var UploadControls = $('#<%= FileUpload.ClientID %> :input'); 
     UploadControls.each(function() { 

      //$(this).val(""); 
      $(this).css('background-color', '#fff'); 
     }); 

     //Updating Update panel by clicking button 
     $(".RefreshList").click(); 
    } 
} 

function AttachmentUploadFailed() { 

    alert("An error occured while uploading File Attachment. "); 
} 

Markup nel file aspx

<asp:ListView ID="ListView2" runat="server"> 
    <EmptyDataTemplate> 
    <table class="fileUpload" runat="server" id="FileUploadID"> 
       <tr> 
        <td> 
         <div style="width: 350px; overflow-x: hidden;"> 
          <asp:AsyncFileUpload runat="server" ID="FileUpload" ThrobberID="Throbber" OnClientUploadError="AttachmentUploadFailed" 
           OnClientUploadComplete="AttachmentUploadSuccessful" UploaderStyle="Traditional" UploadingBackColor="" Style="display: inline-block; margin-top: 5px;" 
           OnUploadedComplete="FileUpload_UploadedComplete"> 
          </asp:AsyncFileUpload> 
         </div> 
        </td> 
        <td style="width: 30px"> 
         <asp:Image ID="Throbber" ImageUrl="~/Image/AttachmentLoading.gif" Style="display: None; width: 20px;" runat="server" /> 
         <br /> 
        </td> 
       </tr> 
     </table> 
     </EmptyDataTemplate> 
</asp:ListView> 

cercando di caricare file di client side event OnClientUploadError è sempre chiamato Non in grado di capire perché sta dando errore stesso caricamento di file su una semplice pagina e all'interno del pannello di Aggiornamento funziona ma all'interno di vista elenco si sta dando errore al client. Passato sopra il problema di collegamento non ottenendo risposta esatta, per favore aiutatemi.

How to find Ajaxfileupload control inside Listview When in Editmode

AsyncFileUpload within EditItemTemplate of ListView

+0

Stai facendo qualcosa in FileUpload_UploadedComplete –

+0

Sì. Sto effettuando una chiamata al database per salvare l'allegato e prendere l'id allegato e memorizzarlo sulla pagina che verrà utilizzata al momento dell'invio del da. – Liquid

+0

* deve * essere in un pannello di aggiornamento ?? so che il normale controllo del caricamento non funzionerebbe, ma hai detto che lo fa. chiedendo. non ho mai usato AsyncFileUpload. – wazz

risposta

2

vedo due problemi nel codice che avete condiviso:

  1. Quella riga di codice: var UploadControls = $('#<%= FileUpload.ClientID %> :input')
  2. E tu non hai una proprietà ClientIDMode in il tuo markup, quindi è Inherit

Questi due problemi hanno la stessa origine: stai utilizzando lo AsyncFileUploader all'interno di uno ListView, quindi ci sarà più di un elemento nella tua pagina con l'id FileUpload.

Quindi, in primo luogo è necessario modificare la dichiarazione di funzione a:

function AttachmentUploadSuccessful(sender, e) { // then you can get the sender 

E poi, per ottenere il la input, che verrà usato:

var UploadControls = $(sender._inputFile); 

Infine, per risolvere il 2 ° problema, sarà necessario modificare la proprietà ClientIDMode su AutoID, in modo che lo AsyncFileUploader sia in grado di trovare correttamente i membri del client di riferimento.