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:
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 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 } }
Désolé, c'est un peu long mais bon, je me dis que ca peut etre utile...
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... } }
Merci de votre aide!
Partager