IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[1.1] Change le content type d'une page


Sujet :

ASP.NET

  1. #1
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut [1.1] Change le content type d'une page
    Bonjour,

    J'ai une page sur laquelle je dépose un diagramme (Infragistics) qui est lui meme une jpeg. Mon problème est que j'aimerai que ma page ne dessine (retourne) que ce jpeg là.

    en gros, dans une autre page, je dois pouvoir faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="chart.aspx?param=john" />
    pour dessiner l'image de mon choix.


    J'ai bien essayé de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.ContentType = "image/jpeg";
    mais ca marche pas.

    d'une certain facon, je trouve ca logique car le composant infragistics retourne lui meme une image. mais bon, j'ai besoin de faire une page aspx pour définir les données à binder sur mon diagramme.

    any idea?

  2. #2
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Pourquoi ne pas travailler avec un UserControl (.ascx) qui contiendrait l'image ?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Bonjour,

    En fait, le plus simple est à partir de l'image de Infragistics de créer un stream et de l'envoyer dans Response.OutputStream sans oublier la modification du header bien entendu pour dire au navigateur que c'est une image/jpeg.

    Si on considère que bmp est un objet Bitmap,

    Response.ClearContent();
    Response.ContentType = "image/jpeg";
    bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
    Response.End();

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    s'eut été facile si le composant infra reagissait normalement. en fait, il propose deux solutions:
    - par filesystem: il crée un fichier sur le disque et l'affiche
    - par session, il stocke le stream en memoire mais utilise une seconde page pour charger l'image et ca revient exactement au meme et je peux pas l'appeler directement car le principe de "session" ne marche qu'avec deux pages déjà

    bref, je suis un peu perdu :'(

  5. #5
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    ET en développant un contrôle qui hérite du composant Infragistic et en surchargeant une méthode, ça pourrait le faire non ?

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    Citation Envoyé par Pongten Voir le message
    ET en développant un contrôle qui hérite du composant Infragistic et en surchargeant une méthode, ça pourrait le faire non ?
    ahhh. j'avais pas compris ton premier post

    effectivement, ca pourrait être une solution mais bon, je crois que t'as jamais ouvert le code d'un composant infragistics
    s'il n'y avait qu'une seule méthod Paint à redéfinir, je pourrais le faire mais là :/
    je garde ca sous le coude en dernière solution en tout cas

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    s'eut été facile si le composant infra reagissait normalement. en fait, il propose deux solutions:
    - par filesystem: il crée un fichier sur le disque et l'affiche
    - par session, il stocke le stream en memoire mais utilise une seconde page pour charger l'image et ca revient exactement au meme et je peux pas l'appeler directement car le principe de "session" ne marche qu'avec deux pages déjà

    bref, je suis un peu perdu :'(
    - T'as moyen de récupérer le fichier créé?
    - Pas compris ce que tu dis sur la session

  8. #8
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message

    effectivement, ca pourrait être une solution mais bon, je crois que t'as jamais ouvert le code d'un composant infragistics
    Non, mais ceux de Telerik oui, et je comprends parfaitement que tu gardes ça en dernier recours

  9. #9
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    Je vais tenter d'expliquer comment ca marche:
    on place un composant graphique sur la page et on lui spécifie son mode de création
    Mode 1 : FileSystem
    il crée un jpeg dans /images, dessine le graphe dessus puis dans le code source met
    <img src="./images/toto.jpg" />


    Mode 2: Session
    Il crée un jpeg en mémoire, dessine le graphe dessus et le place en session avec la clé "XAEAZDQDQSFA" (aléatoire et non contrôlable).
    Dans le code source, il met
    <img src=".ImagePipe.aspx?session=XAEAZDQDQSFA" /> qui est une seconde page (qu'il faut créer soit meme) qui lit en mémoire l'image, a un contenttype de type image/jpeg et dessine le graphe alors en session



    Bref, c'est limite ce deuxième fonctionnement qui m'irait mais bon :/

    En fait, il me faut une page chart.aspx?param=toto qui dessine le graphe, le garde en mémoire (et non session), change le content type en image/jpeg et dessine le graphe elle même.
    Sauf que c'est plus facile à dire qu'à faire et le support d'infragistics ne semble pas pressé de trouver une réponse à cette problématique

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Bonjour,

    Normalement, il doit y avoir un événement disponible qui est executé avant le rendu de la Page (et donc après Page_Load et tous les autres événements). Si tu abonnes ta page à cet événement, le jpeg est déjà en Session et donc, tu dois pouvoir connaître l'id aléatoire et donc récupérer le stream.

    Ensuite, un petit Response.Clear() pour effacer le <img> ajouté par le composant Infragistics, un Response.ContentType = "image/jpeg" et un envoi du stream en Session vers ta Response, ça devrait marcher non ?

    Ca implique bien entendu que ce code soit dans ta page Chart.aspx et que donc, le composant Infragistics y soit également.

  11. #11
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    merci Kaidan, c'est une solution invisageable mais j'ai trouvé mieux (et on se moque pas svp)

    il suffisait de faire
    monComposant.SaveTo(Response.OutputStream, ImageFormat.Jpeg);

    et rien d'autre...
    et ces screugneugneux d'infragistics ont meme pas su me le dire...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SP-2010] Ajouter un Content Editor dans une page applicative
    Par tomo0013 dans le forum SharePoint
    Réponses: 5
    Dernier message: 25/01/2011, 15h11
  2. Content-type pour une pièce jointe dans un mail
    Par rcjcrcjc dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2009, 18h51
  3. initialiser une tache content type
    Par samworkflow dans le forum SharePoint
    Réponses: 0
    Dernier message: 02/06/2009, 11h22
  4. Intégrer une police True Type dans une page HTML
    Par lcoulon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 28/10/2008, 22h02
  5. [WSS 3] Feature d'une liste basée sur un content type
    Par d1g-2-d1g dans le forum SharePoint
    Réponses: 11
    Dernier message: 26/09/2007, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo