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 :

[C#] Classe Abstraite et WebDesigner


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 31
    Points
    31
    Par défaut [C#] Classe Abstraite et WebDesigner
    Bonjour à tous!
    J'ai un petit probleme avec une classe Abstraite...

    Voici:
    Mon site se compose d'une série de pages qui vont toutes faire des actions plus ou moins identiques mais d'une façon différentes.
    En fait, une série de page va utiliser un code particulier alors qu'une autre utilisera un autre code. Mais ces deux pages vont partager une série de fonctions communes...

    D'où mon idée d'utiliser une classe abstraite dont vont deriver l'ensemble de mes pages.

    La classe abstraite possede des methodes déja définies (les methodes communes à toutes les pages) et des methodes abstraites que chaque page devra definir elle meme.

    tout cela fonctionne parfaitement, le code marche, etc...
    Mon seul probleme, c'est que sous visual studio (2003), je ne peux plus afficher le WebDesigner d'une page aspx qui dérive de ma classe abstraite...
    Il m'affcihe une erreur "Type abstract" qui ne me dit rien du tout...

    Ai-je oublié quelque chose?

    Je vous joins un exemple de code:

    Une page web qui derive:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class PageFille : PageMereGlobal
    {
        public void FaitDesChoses()
        {
            //Fonction qui fait des choses avec les labels, les boutons, etc... juste pour cette page
        }
     
        public override MaFonctionCommune()
        {
            //Fonction qui va faire parreil pour toutes les pages mais de façon différente
        }
    }
    Classe abstraite:
    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
    33
    34
    35
    36
    37
    38
    39
     
    public abstract class PageMereGlobal: System.Web.UI.Page
    {
        //Definition des labels, boutons, etc... communs a toutes les pages
        protected System.Web.UI.WebControls.Calendar _Calendar1;
     
        //Methode que les autres classes filles devront redéfinir
        public abstract void MaFonctionCommune();
     
        //Le pageLoad de toutes les pages
        private void Page_Load(object sender, System.EventArgs e)
        {
            //On fait des choses communes...
            //...
     
            //On lance la fonction commune mais spécifique
            MaFonctionCommune();
     
            //On fini par des trucs communs...
            //...
        }
     
        //Methode onInit de base
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
    	base.OnInit(e);
        }
     
        private void InitializeComponent()
        {    
    	this._Calendar1.SelectionChanged += new System.EventHandler(this._Calendar1_SelectionChanged);
        }
     
        private void _Calendar1_SelectionChanged(object sender, System.EventArgs e)
        {	
            //On fait des trucs de calendrier...
        }
    }
    Désolé, c'est un peu long mais bon, je me dis que ca peut etre utile...

    Merci de votre aide!

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Bon, visiblement, de ce que j'ai compris, mon probleme viendrait du fait que ma classe abstraite n'est pas référencée dans mon projet (dans le code c#, html, je sais pas).
    Quelqu'un a une idée sur comment faire ce petit tour de magie?! :p

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 31
    Points
    31
    Par défaut
    Bon, alors, j'ai un peu avancé mais bon, faut dire que je galère toujours!

    Visiblement, il me faut enregistrer ma classe abstraite dans mon code HTML via cette commande: <%@ Register ... >
    Le probleme, c'est que je ne vois pas comment l'utiliser et que j'ai beau chercher sur le net (oui je sais, gogole est mon ami mais bon, là il est un peu autiste mon pote...) je ne trouve pas.

    Je précise un peu mieux ma composition de fichiers pour mon projet:

    • La page PageFille.aspx qui contient le code html avec la mise en page ainsi que le <asp:Calendar ... >
      Pour le moment cette page n'a en entete que la ligne de base <%@ Page...>
    • Le fichier PageFille.aspx.cs qui contient donc le code ecrit plus haut
    • Le fichier PageMereGlobal.cs qui contient la classe abstraite qui dérive, elle, de System.Web.UI.Page
    Voilà, je suis désolé de revenir à la charge mais ce probleme me bloque dans l'avancée de mon projet et ca commence à devenir problematique en fait!

    Merci encore de votre aide!

Discussions similaires

  1. [Debutant] Une classe abstraite en parametre ?
    Par kiroukou dans le forum Débuter
    Réponses: 8
    Dernier message: 03/02/2005, 15h05
  2. [Débutant(e)] toString + classes abstraites
    Par debdev dans le forum Langage
    Réponses: 9
    Dernier message: 26/01/2005, 15h22
  3. [Debutant][Conception] Classes abstraites et interface.
    Par SirDarken dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2004, 00h02
  4. Classe abstraite / MVC
    Par caramel dans le forum MVC
    Réponses: 5
    Dernier message: 01/04/2003, 09h27
  5. pb constructeurs classes dérivant classe abstraite
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 10/02/2003, 19h02

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