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 :

[ASP.NET 2.0][C#] Récupérer le code html d'une page dans une string


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut [ASP.NET 2.0][C#] Récupérer le code html d'une page dans une string
    Bonjour,

    - Accès à ma page web
    - A la fin d'initialisation de la page.
    Je souhaite récupérer le contenu html dans une variable de type string.
    Je peux récupérer le contenu html de mon formulaire form.InnerHtml.
    Mais je veux celui de toute ma page pour faire d'autre traitements.

    Comment Faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    maPage.aspx <html>....<body><form id="form"></form></body></html>
    public class maPage: Page
    {
      pageLoad()
      {   .... 
         st
      }
    }
    Merci de votre aide

  2. #2
    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
    Tu dois pouvoir récuperer tout ça dans le Render

  3. #3
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    je ne vois pas comment et où ?

    Pour l'instant j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void PageLoad()
    {
    .....
    string contenuHtml = this.Response.OutputStream.ToString();
    }
    Mais cela ne marche pas

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    tu veux que ta page récupère son propre contenu ???

  5. #5
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    oui, c'est ce que je souhaite faire.

    c'est récupérer le contenu de la page courante pour écrire la page html dans un fichier.

  6. #6
    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
    Tu crées une classe qui hérite de page.
    Tu surcharges la methode Render et là t'auras accès au code html généré.

    Tu fais hériter les pages de cette classe

  7. #7
    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 : 43
    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
    Ou alors utiliser une méthode du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    publicstaticstring GetPageContent(string url) 
    {
      HttpWebResponse httpWResponse = null; 
      StreamReader sr = null;
      string ans = null; 
      try
    
      {
        HttpWebRequest httpWRequest = (HttpWebRequest)WebRequest.Create(url); 
        httpWResponse = (HttpWebResponse)httpWRequest.GetResponse();    
        sr = newStreamReader(httpWResponse.GetResponseStream(), Encoding.GetEncoding("iso-8859-1")); 
        ans = sr.ReadToEnd();
    
       }
    
       catch
    
    
       {
         ans = null; 
       }
    
       finally
    
       {
         if (httpWResponse != null) httpWResponse.Close();     
         if (sr != null) sr.Close(); 
       }
    
       return ans; 
    }
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  8. #8
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    J'ai surchargé ma méthode Render mais je n'arrive pas à récupérer le code de ma page sur une variable de type "string".

    J'ai le code pour récupérer le rendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      StringBuilder sb= new StringBuilder();
      StringWriter sw = new StringWriter(sb);
      HtmlTextWriter htw = new HtmlTextWriter(sw);
      this.RenderControl(hw);
      string contentHtml = sb.ToString();
    MAIS je ne sais pas comment l'utiliser dans ma méthode Render
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      protected override void Render(HtmlTextWriter writer)
      {
        ....
        base.Render(writer); 
        ....
      }
    Auriez vous des propositions ?

  9. #9
    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
    Ici, je prends le contenu, je le modifie et je le réinjecte dans la réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Protected Overrides Sub Render(ByVal output As HtmlTextWriter)
            Dim mem As TextWriter = output.InnerWriter
            Dim internal_writer As New StringWriter(mem.FormatProvider)
            output.InnerWriter = internal_writer
     
            MyBase.Render(output)
     
            Dim sOutputBuffer As String
            sOutputBuffer = internal_writer.ToString
     
            Dim internal_writerB As New StringWriter(mem.FormatProvider)
            output.InnerWriter = internal_writerB
            internal_writerB.Write(sOutputBuffer)
     
            sOutputBuffer = FormatToIMode(sOutputBuffer)
     
            output.InnerWriter = mem
            output.Write(sOutputBuffer)
            output.Flush()
     
            Me.Response.Flush()
        End Sub
    (C'est du VB.NET)

  10. #10
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    Merci

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

Discussions similaires

  1. Récupérer le code HTML de la sélection dans une iFrame
    Par umeboshi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/11/2009, 10h04
  2. Réponses: 14
    Dernier message: 25/02/2009, 17h04
  3. Afficher une page dans une autre page en ASP.net
    Par wassimDz dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 23/10/2007, 15h49
  4. Réponses: 1
    Dernier message: 28/02/2007, 19h09
  5. Réponses: 8
    Dernier message: 10/01/2007, 21h10

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