0

J'ai un gridView pour montrer la liste de document (.PDF) et un LinkButton pour télécharger/lire le document.Poussez le fichier au client n'est pas travaillé après utilisation UpdatePanelAinimationExtender

LinkButton:

<ItemTemplate> 
    <asp:LinkButton ID="lbDocTitle" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>' Text='<%# DataBinder.Eval(Container.DataItem, "Content") %>' OnClick="lbDocTitle_Click"></asp:LinkButton> 
</ItemTemplate> 

lbDocTitle_click

protected void lbDocTitle_Click(object sender, EventArgs e) 
     { 
      LinkButton btn = (sender as LinkButton); 

      int docID = Convert.ToInt32(btn.CommandArgument); 
      //get fileName from docID here... 

      ReadPdfFile(fileName); 

     } 


private void ReadPdfFile(string fName) 
     { 

      WebClient client = new WebClient(); 
      Byte[] buffer = client.DownloadData(fName); 

      if (buffer != null) 
      { 
       Response.ContentType = "application/pdf"; 
       Response.AddHeader("content-length", buffer.Length.ToString()); 
       Response.BinaryWrite(buffer); 
      } 
     } 

Tout le code ci-dessus sont travaillés parfait.

Ensuite je fais quelques améliorations: ajouter un écran loadding tandis que les codes sont exécutés sur le serveur

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 

<asp:UpdatePanel ID="updatePanel" runat="server"> 
<ContentTemplate> 
    <asp:GridView ...> <!-- move gridview here --> 
</ContentTemplate> 
</UpdatePanel> 


<asp:UpdatePanelAnimationExtender ID="upae" BehaviorID="animation" runat="server" TargetControlID="updatePanel"> 
       <Animations> 
        <OnUpdating> 
         <Parallel duration="0"> 
          <ScriptAction Script="onUpdating();" /> 
         </Parallel> 
        </OnUpdating> 
        <OnUpdated> 
         <Parallel duration="0"> 
          <ScriptAction Script="onUpdated();" /> 
         </Parallel> 
        </OnUpdated> 
       </Animations> 
      </asp:UpdatePanelAnimationExtender> 

javscript:

function onUpdating() { 
    $('#loadingBox-holder').show(); 
    $('#loadingBox').show(); 
} 

function onUpdated(x) { 
    $('#loadingBox-holder').hide(); 
    $('#loadingBox').hide(); 
} 

Après amélioration, en cliquant sur LinkButton lblDocTitle l'écran loadding apparaissent et encore en train de charger le chargement ... et le chargement pour toujours.

Je ne sais pas pourquoi et comment corriger ce bug espérons-nous de l'aide?

Merci!

Répondre

0

OK Je corrige cette erreur. Utilisez simplement d'autres pages ASPX pour gérer le fichier de téléchargement. UpdatePanel ne peut pas répondre autre sortie sauf HTML: D

Questions connexes