Lorsqu'un utilisateur clique sur un lien, il ouvre une nouvelle fenêtre (puisque target = "_ blank") appelle une page xyz.ASPX qui créera dynamiquement une facture PDF, l'enregistrant dans une base de données (pas un emplacement physique) et puis je dois être en mesure d'ouvrir le fichier PDF dans la page ASPX.Afficher le fichier PDF dans ASPX non acrobat
Maintenant, ce qui se passe, c'est que l'aspx qui génère le fichier PDF est appelé, il fait ses choses, mais ouvre ensuite Acrobat pour afficher la facture PDF. Cependant, la page xyz.aspx est vide et n'affiche rien. Je n'aime pas ça et voudrais que xyz.aspx affiche le fichier PDF. D'après mes recherches, il semble que si vous voulez afficher le PDF dans la page ASPX, vous avez besoin d'un iFrame ou d'un contrôle personnalisé. Cependant, puisque le PDF est créé dynamiquement et non stocké sur le disque, comment puis-je définir la source de l'iFrame. Est-il possible de définir le src comme un objet de réponse ou un autre objet en mémoire?
Existe-t-il un moyen facile de le faire? Je ne veux pas utiliser un contrôle personnalisé. J'utilise .NET 3.5 et C# avec des pages maîtres et des thèmes CSS mais je l'ai désactivé pour cette page.
Sourcexyz.aspx:
`<% @ Page language = "C#" EnableTheming = "false"
ContentType = "application/pdf" behind = "xyz.aspx.cs" AutoEventWireup = "true" Inherits = "namespace1.xyz" %>
'
xyz.aspx.cs (obtient le fichier PDF à partir du DB et écrit ensuite objet Response)
protected void Page_Load(object sender, EventArgs e)
{
byte[] pdfBinaryFile = GetPDFFileFromDB(PDFId);
if(pdfBinaryFile != null)
Response.BinaryWrite(pdfBinaryFile);
}