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 :

Redéfinir la classe Control


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 14
    Par défaut Redéfinir la classe Control
    Bonjour,

    Je développe un site en ASP.NET, et j'aimerais ajouter un attribut et une méthode commun à tous mes contrôles. Pour cela j'aimerais éviter de redéfinir chaque classe pour y ajouter l'attribut et la méthodes (MonBouton : Button, MaTextBox:TextBox, etc...).
    Je demandais donc si il existait un moyen de redéfinir la classe Control en y ajoutant ce que je veux et que ça soit ainsi appliquer à tous mes contrôles puisqu'il hérite tous de la classe Control.

    J'ai essayé de faire une classe MonControl qui hérite de Control dans laquelle j'ai défini mon attribut et ma méthode, mais je ne sais pas comment l'appliquer à tous mes contrôles.

    Merci d'avance pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    Citation Envoyé par boucman Voir le message
    Je demandais donc si il existait un moyen de redéfinir la classe Control en y ajoutant ce que je veux et que ça soit ainsi appliquer à tous mes contrôles puisqu'il hérite tous de la classe Control..
    Il est impossible de redefinir la classe Control.

    Citation Envoyé par boucman Voir le message
    J'ai essayé de faire une classe MonControl qui hérite de Control dans laquelle j'ai défini mon attribut et ma méthode, mais je ne sais pas comment l'appliquer à tous mes contrôles.
    Impossible je pense aussi.

  3. #3
    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 : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    En C# 3, tu as les "méthodes d'extension" qui, il me semble, pourraient convenir à ton problème...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Pongten Voir le message
    En C# 3, tu as les "méthodes d'extension" qui, il me semble, pourraient convenir à ton problème...
    Waaou, j'avais même oublié les méthodes d'extension. Cette discussion devient très intéressante. Mais Boucman veut aussi ajouter un ou des attributs dans les controles standards.

    Est-ce qu'il existe des attributs "d'extensions".
    Sinon le fait qu'il ajoute des méthodes d'extensions ne sert pas a grand chose si ces dernières ne peuvent pas utiliser le ou les attributs qu'il a créé.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Attention quand même avec les méthodes d'extension. Ce n'est jamais qu'un sucre syntaxique qui permet une utilisation différente des méthodes statiques.

    Pour ton problème, Boucman, il faudrait voir ce que tu fais avec tes attributs et méthodes supplémentaires.

    A priori, tu risques de devoir refaire une hiérarchie de contrôles complète, mais selon ce que tu veux faire exactement, il y a peut être des moyens d'éviter ça avec des adapters...

    Peux-tu donner des précisions stp.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 14
    Par défaut
    Merci pour la rapidité de vos réponses.

    C'est bien ce qu'il me semblait, ce que je veux n'est pas possible.

    La méthode d'extension me permet de faire ma méthode mais pas mon attributs.

    En plus pour ce que j'ai a en faire, je ne vais pas m'embêter à refaire la hiérarchie des contrôles. je vais donc redéfinir l'attribut et la propriété dans chaque contrôle où j'en ai besoin.

    Merci de votre aide.

    Salut.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ce que tu dis là
    Citation Envoyé par boucman Voir le message
    je ne vais pas m'embêter à refaire la hiérarchie des contrôles.
    et là
    Citation Envoyé par boucman Voir le message
    je vais donc redéfinir l'attribut et la propriété dans chaque contrôle où j'en ai besoin.
    Dans la deuxième tu effectues ce que tu ne veux pas faire dans la première affirmation. En plus ça fait pas partie des bonnes pratiques de la programmation. Supposons qu'un jour je désire continuer ton code et de nouveaux controles apparaissent j'aurais du mal à maintenir ton code et à comprendre pourquoi tu t'es mis à redefinir tout. Le mieux serait d'utiliser un Design Pattern comme te l'a dit Keihilin en utilisant un Adaptateur.

    Merci.

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Le mieux serait d'utiliser un Design Pattern comme te l'a dit Keihilin en utilisant un Adaptateur.
    A noter que dans ce cas, le terme Adapteur peut être ambigüe.

    Un Adapteur au sens DP pourrait effectivement être une approche, mais selon ce que l'on souhaite faire, un Adapteur au sens "Friendly Adapter" d'ASP.NET pourrait faire l'affaire en admettant que les modifications de comportement concernent le rendu des contrôles.

  9. #9
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Citation Envoyé par boucman Voir le message
    et j'aimerais ajouter un attribut et une méthode commun à tous mes contrôles
    Lesquels?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 14
    Par défaut
    C'est pour un site web ou je veux mettre une approche modulaire et pouvoir activer tel ou tel module.
    Ainsi chaque contrôle a un module attribué, et dans la méthode Render() du contrôle je vérifie si le module est actif ou non, et en fonction de ça, j'affiche ou masque le contrôle.

    j'aurai donc un attribut de type énuméré et une méthode VerificationModule();

  11. #11
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Ok, je vois là une approche métier. J'imagine mal qu'un controle button fasse partie d'un module. Tu pourrais donc faire des WebUserControl qui héritent d'une classe de base.

    Après tu peux d"finir un attribu personnalisé qui indique pour quels groupes d'utilisateurs tel ou tel control est disponible.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. [Débutant] Appeler une propriété de la classe Control
    Par noftal dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/11/2013, 00h17
  2. [1.x] déclarer variables statiques dans une classe controller
    Par flora806 dans le forum Symfony
    Réponses: 8
    Dernier message: 15/10/2012, 17h26
  3. Redéfinir une classe
    Par nicØB dans le forum Général Java
    Réponses: 5
    Dernier message: 11/08/2007, 11h36
  4. Classe control
    Par caramel dans le forum MVC
    Réponses: 3
    Dernier message: 01/04/2003, 09h38

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