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!