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 :

Comment centraliser une seul fois mon code pour 20 pages aspx?


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 63
    Points
    63
    Par défaut Comment centraliser une seul fois mon code pour 20 pages aspx?
    Bonjour à tous,

    J'ai vraiment un soucis et je n'arrive pas à comprendre?

    Je développe en .Net 2.0 C#.

    J'ai 20 pages, dans ces 20 pages j'ai chaque fois des contrôles identiques avec le même nom, je dois à chaque page et ce dans plusieurs langues copier le code identique dans les fichiers .cs, ce que je trouve absurde, vu qu'a tout moment je peux changer quelques choses et donc je dois me retaper à changer partout le même code?

    Je ne sais pas utiliser des usercontrols car chaque page à son propre design.

    J'essaie de créer une classe que j'apelle "BasePage.cs", je met mon code

    public class BasePage : System.Web.UI.Page
    {
    protected void SelectAll_Click(object sender, EventArgs e)
    {
    chkPromo.Checked = chkWorld.Checked = chkCard.Checked = chkBio.Checked = true;
    }
    }

    A ma page aspx, j'herite de Basepage

    Mais quand je compile il ne veux pas et ne trouve pas mes controles checkbox?

    Je vois que dans la doc sur MSDN, les controles ne sont pas définit dans le code depuis la version 2 de .Net, la class est partial et donc la class contenant la définition des controles se fait à la compilation, mais comment définir mes controle dans BasePage?

    Avant en .Net 1.1, c'était facile, tu faisais un Cut/Paste de tes contrôles définit automatiquement dans une autre class mais en .net 2, il n'y a rien dans mon code?

    Je voudrais centraliser des evenments, tout ca dans une seul class pour mes 20 pages? Et je ne comprends pas comment faire?

    Merci de m'aider

    David

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    - 20 pages
    - Control identiques

    MasterPages?
    http://msdn2.microsoft.com/en-us/library/aa581781.aspx

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Points : 633
    Points
    633
    Par défaut
    un userControle ??

  4. #4
    Membre régulier Avatar de Asiany
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 73
    Points : 77
    Points
    77
    Par défaut
    Je dirais Masterpage aussi.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 63
    Points
    63
    Par défaut Résolu
    Ok, j'ai résolu mon problème, j'ai créer une page .cs avec tous le code et dans toutes mes pages aspx j'y ai mis tous les composants, mais ceux qui ne sont pas utilisés dans certaines, j'ai mis la propriété Visible=False, comme ca je suis sur que mon code dans l'unique page .cs aura toujours les composants par défaut visible ou non.

    De la dans chaque page aspx, au dessus, j'ai pointé la référence du fichier .cs vers l'unique fichier .cs

    J'ai jouer avec des Panel pour cacher ou montrer par rapport à certaines pages un design différent et tout fonctionne à merveille.

    Voilà. Merci pour vos réponses

  6. #6
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Sinon plus elegament tu aurais pu dériver la classe Page et lui mettre tout tes traitements. Ensuite chacune de tes pages apsx aurait herité de cette nouvelle classe page que tu aurais fais.

  7. #7
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    mais c'est degueulasse ????

  8. #8
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    J'avais mal lu je crois ton premier post ( je l'ai parcouru trop rapidement... )

    Pour acceder à tes check box dans ta classe derivee basePAge, tu declare des checkbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Checkbox Macheckbox1 = null
    et ensuite dans le on init de ta page, tu affectes ces pseudo controles a ceux de la page aspx qui va les heberger :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MAcheckbox1 = This.findcontrol("Macheckbox1);
    si jamais tu n'est pas sur d'avoir ce controle sur ta page aspx tu gere l'exception ensuite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (Maheckbox1 ==null) 
    {
    }
    else
    {
    }
    Voilà j'espere que cela a pu t'aider...et si qqun a une meilleure idee je suis preneur!

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

Discussions similaires

  1. Comment exécuter une seule fois
    Par pixelrock dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 30/11/2009, 10h39
  2. [PPT-2007] Comment lire une seule fois la narration et les animations avec la visionneuse
    Par winnypouth dans le forum Powerpoint
    Réponses: 10
    Dernier message: 28/05/2009, 17h06
  3. [MySQL] Comment afficher une seul fois un field s'il apparait dans plusieurs enregistrements
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/05/2009, 16h11
  4. Réponses: 5
    Dernier message: 27/02/2009, 12h31
  5. Réponses: 10
    Dernier message: 02/05/2007, 10h19

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