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 :

Manipulation de Page dans une classe externe


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Manipulation de Page dans une classe externe
    Salut tout le monde.

    Bon, j'attaque le Lundi matin avec un truc pas banal, mais bon, ça fais au moins trois mois que j'ai pas posé une colle, alors......

    Je pense que j'ai un souci sur la gestion des énèvements, mais j'arrive pas à comprendre pourquoi.

    J'ai une page ASPX par défault qui contient un peu de HTML et pas grnd chose dans le CodeBehind. Je ne psot epas le HTML, je pense qu'il ne sert à rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Partial Class Defaulte
        Inherits System.Web.UI.Page
     
        Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
            ProjetY.PageY.OuvertureSite(Me.Page)
     
        End Sub
    End Class
    Voilà, donc pas grand chose. Peut être attention à l'évènement.

    Ensuite, le code de la Classe PageY, pas beaucoup plus impressionant :
    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
     
    Imports Microsoft.VisualBasic
    Imports ProjetY.Outils
     
    Namespace ProjetY
        Public Class PageY
            Public Shared Sub OuvertureSite(ByRef PageduSite As Page)
                Dim PageCourante As Page = PageduSite
                Dim verifSite As String = New DManager("Datadev").RetournerScalaire("EXEC CORE_VerifSiteExiste '" & PageCourante.Request.Url.Host & "'")
                'Vérification de l'existance du site dans la base
                If verifSite = 1 Then
     
                Else
                    ErreurNonDefinie(PageCourante)
                End If
            End Sub
     
            Public Shared Sub ErreurNonDefinie(ByRef PageduSite As Page)
                Dim PageCourante As Page = PageduSite
                Dim lblEnnonceErreur As New Label
                PageCourante.MasterPageFile = "~/MasterPage/Default.master"
                PageCourante.Theme = "Default"
                lblEnnonceErreur.Text = "Une erreur générale vient de se produire"
                PageCourante.Controls.Add(lblEnnonceErreur)    <---- LA
            End Sub
        End Class
    End Namespace
    J'ai marqué la dernière ligne de code avec un "LA" parce que c'est là que se situe mon soucis. Lorsque je la mets en commentaire, donc pas exécutée, tout va bien, oui, enfin, bon, c'est normal quoi !

    Mais lorsque je l'active il me dit un truc qui me plais pas du tout, puisque je l'ai fait juste avant, voyez vous même :
    Les contrôles de contenu doivent être des contrôles de niveau supérieur dans une page de contenu ou une page maître imbriquée qui fait référence à une page maître.
    Alors moi je veux bien, il veut quoi pour comprendre où se trouve sa MasterPage !
    J'ai vérifié la MasterPage est disponible, pas de soucis, le code dedans est bon (vu que y en a pas !).

    J'ai peur que cela soit une histoire de gestion d'évènement dans la page elle même, mais j'aimerais bien confirmation.

    Là, je sèche. à 9 H 30 nu Lundi, la semaine promet d'être sympa !

    Vous pouvez m'aider ?

  2. #2
    Membre confirmé

    Inscrit en
    Novembre 2003
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 168
    Par défaut
    En général quand on veut écrire un traitement d'une requete sans retourner une page associée (comme c'est le cas pour ta page Default) on préfère plus utiliser un HttpHandler qu'une page ASPX qui ne renvoi pas de page !

    En tout cas, pour ton pbm essai de déclarer la variable lblEnnonceErreur comme membre de ta classe plutot que comme variable locale de ta méthode ErreurNonDefinie(). bititre.....

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    En fait, entre temps (et j'ai oublié que j'avais posté ça ! ) j'ai changé les choses complètement.

    Je me suis rendu compte que je voulait faire des choses trop tôt dans la constitution de la page. Du coup, j'ai un truc dans le PreInit et une autre dans le Init. Comme ça je gère mes vérification lrosqu'il y en a besois, ni avant, ni aprés.
    ça me posait un souci car j'avais l'impression de faire deux fois la même chose, mais j'en ai fais mon deuil.

    Pour le HttpHanlder, je connais aps du tout. Mais je penseue ce n'est pas adapté car je veux retourner une page. Mon soucis est de vérifier :
    1. Le site
      Tout va bien, il est actif, pas en maintenance, bien créer et dispos d'au moins une page par défaut
    2. La page
      Elle existe, est valide, active et dispose d'au moins un composant.

    Et donc je comptais faire tout ça dans le PerInit, mais visiblement, c'est trop tôt pour la page elle même car elle n'éxste pas encore.

    Mais merci pour ton aide.

  4. #4
    Membre confirmé

    Inscrit en
    Novembre 2003
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 168
    Par défaut
    Pour le point 1 si tu as besoin de faire ça a chaque fois qu'une page du site (n'importe laquelle) est appelée, alors le mieux c'est d'utiliser un HttpModule qui t'évitera de dupliquer un traitement sur toutes les pages.

    Pour le point 2 effectivement ça ne peut se faire que dans la page.

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    Voilà encore un nouveau truc à potasser pour moi.

    Merci les gars, je savais pas quoi faire ce week-end.......


    Kenavo

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

Discussions similaires

  1. référence à une classe externe dans son interne
    Par Virgile le chat dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2009, 23h58
  2. Faire une redirection dans une classe externe
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/06/2007, 14h17
  3. Utilisation d'une classe externe dans une DLL
    Par xChRiSx dans le forum C++
    Réponses: 6
    Dernier message: 04/06/2007, 09h32
  4. manipulation de donnees membres dans une classe
    Par gfranck dans le forum C++
    Réponses: 3
    Dernier message: 14/11/2006, 09h55
  5. Réponses: 1
    Dernier message: 10/11/2006, 12h43

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