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 :

Modularité en ASP


Sujet :

ASP.NET

  1. #1
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut Modularité en ASP
    Bonjour
    Je travaille actuellement sur un application développée avec ASP et C# pour le code behind.
    Dans cette application il y a des rapports rattachés a différents départements d'une entreprise, composés de 2 gridview.
    En dehors des colonnes des gridview et du titre de la page il y a peu de différences.
    Actuellement il y a une page par département. Cette page regroupe des fonctions utilisant les grid view ou participant à leurs création.
    Je souhaiterais mutualiser les choses.
    J'avais tout d'abord penser à faire une sorte de classe mère C# dans un fichier Rapport.cs et des calsses filles dans mes fichiers DepRapport.cs rattaché au pages DepRapport.aspx
    Cependant je ne vois pas comment utiliser les variables contenue dans les pages, comme les gridview par exemple, depuis ma classe mére.
    Ma première idée fut de créer des variables abstraites qui serait surchargé par les variables des pages filles mais ca ne fonctionne pas.
    Aurriez-vous une idée ?
    Merci

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    As-tu pensé utiliser une master page contenant tout le contenu de tes pages, sauf tes grilles (pour le titre c'est une variable public):

    http://lutecefalco.developpez.com/tu...-page-asp-net/

  3. #3
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    Bonjour
    Merci pour la proposition :-)
    J'y ai pensé mais il y a une bonne partie du code des grid view qui est identique (calcul de totaux, formatage de cellule...) c'est pourquoi j'aurais voulu faire quelque chose de modulaire.
    Je ne pense pas qu'avec une master page je puisse mettre le code des grid view dans le code de la master page puisque ceux ci n'existent pas dans celle-ci.
    En fait j'ai uniquement quelques colonnes qui changent dans mes gridview. Le no du datasource est identique et les traitement dessus sont identiques à quelques exceptions prêt, d'ou mon idée de surcharger.
    J'avais essayer autrement de faire une master page et de mettre des bloc de contenu à l'emplacement des colonnes mais un contentPlaceHolder ne peux pas être dans un gridview visiblement.
    A moins que j'ai raté quelque chose...

  4. #4
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    En fait je n'ai pas essayer d'insérer mes grid View dans les content place holder de ma master page ce qui permetrait de mettre le code dans la master page.
    Je teste ca et écrirais le résultat...

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Re,

    Dans ce cas, fais un combinaison des deux: masterPage et Uc, et mets dans ton uc tout le traitement de ta gridView avec juste quelques propriétés biens placées pour gérer les différents comportements.

    au final, ta page récupère la master pour l'habilllage et le titre, a juste un uc avec le type d'affichage de données pour la girdView et ton code est mutualisé.

  6. #6
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    Désolé mais je ne sais pas ce qu'est un uc.
    Pourais-tu éclairer ma lanterne ?
    Merci

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Autant pour moi: uc est une abréviation d'UserControl.

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par signix Voir le message
    Désolé mais je ne sais pas ce qu'est un uc.
    Pourais-tu éclairer ma lanterne ?
    Merci
    UC : User Control.

  9. #9
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    Merci
    Je ne comprends pas l'utilité de créer un User Control.
    Mes grid view doivent récupérer de l'information depuis la master page et celle ci doit également déclencher des événement sur ceux ci.
    Ne puis-je pas inclure des grid view vides dans mes content place holder pour pouvoir écrire mes fonctions dans la page master plutot que de rajouter une page mere ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     <asp:ContentPlaceHolder ID="" runat="server">
                        <asp:GridView ID="GV" runat="server" DataSourceID="" >
                            <Columns>
                            </Columns>
                        </asp:GridView>
                    </asp:ContentPlaceHolder>
                </div>
    et pour mes pages de contenu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <asp:Content ContentPlaceHolderID="columnDetailsContent" runat="server">
       <asp:GridView ID="GV" runat="server" 
            OnRowCreated="Master.GV_RowCreated">
     
      </asp:GridView>
    </asp:Content>
    Ils devraient être supprimés lors de la fusion des pages non ?

    Pourtant si je fais ceci je me retrouve avec un stack overflow

  10. #10
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Tu as une masterPage qui contient tout habillage (titre etc...).

    Tu as deux pages de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <asp:ContentPlaceHolder ID="" runat="server">
                        <uc:Rapports mode="Admin" .... />
    </asp:ContentPlaceHolder>
    tu as un uc de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <asp:GridView ID="GV" runat="server" DataSourceID="" >
                            <Columns>
                            </Columns>
                        </asp:GridView>

    Ainsi le code behind de ta page ne devrait qu'avoir une ligne dans le page_load:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    master.Title = "mon titre de page";
    Dans ton uc Rapports tu auras toute la logique de tes rapport (calcul de totaux etc, en fonction du mode).

    Enfin ton erreur vien d'un appel récursif non voulu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:GridView ID="GV" runat="server" 
            OnRowCreated="Master.GV_RowCreated">

  11. #11
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    Je ne connaissais pas du tout les User Control.
    Je vais tester ca mais il me semble que ca répondrait aps mal à mon besoin.
    Si je veux par contre avoir des méthodes spécifique à un rapport sur mon gridview, existe-t-il un moyen de le rendre public dans mon UC ?
    Merci beaucoup.
    Si ca marche je mettrais le tag résolu.

  12. #12
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    J'ai encore un souci.

    J'ai en fait 2 Grid view dans ma page qui n'ont pas le même comportement mais qui sont liés. Du coup maintenant ca me donne dans ma page propre à chaque département :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     <asp:Content ContentPlaceHolderID="gv1Content" runat="server">
            <uc:GV1 mode="Dep1" .... />
    </asp:Content>
    <asp:Content ContentPlaceHolderID="blocSpecifique" runat="server">
        <div>
            Contenu dep1
        </div>
    </asp:Content>
     <asp:Content ContentPlaceHolderID="gv2Content" runat="server">
            <uc:GV2 mode="Dep1" .... />
    </asp:Content>
    et dans ma Master page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    En-Tête
    Drop Down List
    <asp:ContentPlaceHolder ID="gv1Content" runat="server">
    </asp:Content>
    habillage général
      <asp:Content ContentPlaceHolderID="blocSpecifique" runat="server">
      </asp:ContentPlaceHolder>
    habillage général
     <asp:ContentPlaceHolder ID="gv2Content" runat="server">
      </asp:ContentPlaceHolder>
    Quelque soit le département le gv1 est relier à gv2 lors des mises à jour et à la DDL pour les insertions.
    Comment puis-je relier le gv1 avec le gv2 et la Drop Down List de manière générale ???
    En plus concis. Je voudrais des gv1, gv2 et une DDL spécifique à mon département mais un lien entre eux identique.
    Dois-je créer un évènement sur mes UC ou existe-t-il un moyen plus simple ?

  13. #13
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Voila, tu trouveras tout ce qu'il te faut:
    http://lutecefalco.developpez.com/tu...-page-asp-net/

  14. #14
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    Cela répond à ma question.
    Merci pour tes conseils et solutions.
    Bonne journée

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

Discussions similaires

  1. [CR][ASP] interfaçage
    Par grosjej dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/04/2004, 10h20
  2. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20
  3. Que pensez vous du mariage ASP Flash?
    Par tyma dans le forum Flash
    Réponses: 4
    Dernier message: 09/07/2003, 15h00
  4. [Modularite][Compilation]Erreur...
    Par miss8 dans le forum C
    Réponses: 3
    Dernier message: 06/01/2003, 01h07
  5. |VB6] [Réseau] Lancer une page ASP
    Par Delphi-ne dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 18/10/2002, 16h10

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