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 :

factorisation de code


Sujet :

ASP.NET

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Mod�rateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par d�faut factorisation de code
    Bonjour a tous,

    je travaille en ce moment sur une page au sein de laquelle je construit dynamiquement un treeview qui me permet d'afficher des donn�es sur des personnes selon de multiples criteres de choix.

    Pour cela, je dispose d'un treeview, contenant 5 Treenodes cr�es en dur, contenant eux meme 3 a 4 childNodes.

    Pour peupler ces noeuds, j'utilise une methode de ce type:
    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
        Sub PopulateNoeudEnfant(ByVal node As TreeNode)
            Dim MyDataSet As DataSet = RunQuery("SELECT TABLE_ID, TABLE_LIBELLE " _
            & " FROM TABLEX, TABLEY,  " _ 'etc.
            & " WHERE TABLEID=" & node.Value) 'récupération ID du noeud parent
            If MyDataSet.Tables.Count > 0 Then
                'Parcours des colonnes du Dataset
                Dim row As Data.DataRow
                For Each row In MyDataSet.Tables(0).Rows
                    'Création du nouveau noeud.
                    Dim MyNewChildNode As TreeNode = New TreeNode(row("TABLE_LIBELLE").ToString(), row("TABLE_ID").ToString())
                    MyNewChildNode.PopulateOnDemand = True
                    MyNewChildNode.CollapseAll()
                    ' Ajout du nouveau noeud à la collection de noeuds enfants du noeud parents
                    node.ChildNodes.Add(MyNewChildNode)
                Next
            End If
        End Sub
    Or, pour mes 5 Treenode, seuls la requete et le noeud parent changent lors de la cr�ation des noeuds enfants,

    Je voudrais donc factoriser mon code de maniere a n'avoir qu'a appeller une fonction a laquelle je passerais simplement des parametres pour alleger sensiblement mon code.
    Mais (parce qu'il y a toujours un Mais) j'ai beaucoup de mal a me representer la maniere dont je dois construire cette fonction, quels parametres lui passer, quoi retourner, ect.

    Pourriez vous m'aiguiller?

    D'avance merci et bonne journ�e

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    102
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 102
    Par d�faut
    tu peux pas mettre tes noeud pere dans une table? je pense que ce serait plus simple...moi c'est ce que j'ai fait.

    Voil� comment j'ai proc�d� :

    j'ai une sub pour peupler mes noeuds peres qui se peuple sur ontreenodepopulate="ma_sub" et ensuite a chaque noeud pere ajout� j'apelle ma sub ou je rentre en parametre ma node et mon dataset pour peupler tous les childnodes du noeud pere en cours. j'ai un id_pere (qui repr�sente l'id du noeud pere) qui me sert a trouver tous les noeuds enfants avec des requetes. Dans une requete, je liste tous mes projets, et pour tous les projets ayant un id_pere qui correspond avec l'id_noeud en cours je l'ajoute et je recommence par r�cursivit� pour les autres childnodes.

    Et ca marche parfaitement! voila j'espere que ca t'aidera!

  3. #3
    Mod�rateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par d�faut
    Effectivement j'y ai bien pens�, et c'est le cas pour certaines de mes tables construites selon un schema:
    ID LIBELLE IDPERE ORDRE

    Seulement, certaines des tables que j'utilise n'ont pas ce niveau hierarchique et je ne dois pas y ajouter de reference � l'id parent.

    Je ne peux donc pas proceder de la sorte.

    Se pose donc le probleme (celui que je ne parviens pas a resoudre) de creer une methode qui attendrait en parametre la requete, et si besoin le noeud parent.
    Mais je ne me sors pas de cette galere, il va pourtant falloir que je trouve si je veux eviter d'avoir 50 reader, autant de command, d'ouverture et de fermeture de connexion.

    Un petit coup de main?

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    102
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 102
    Par d�faut
    mais tu dis donc que c'est cod� en dur, mais auras-tu toujours 5treenodes racine?

    parce que dans ce cas tu le cr�es dans ton page load ou dans ta sub correspondant au ontreenodepopulate et pour chaque noeud racine que tu cr�es a la main, t'appelles ta fonction qui va te cr�er r�cursivement tous les chilnodes

    je ne r�pond toujours pas � ta question ??

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    102
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 102
    Par d�faut
    A non pardon, je viens de comprendre ton systeme de tables. Mais si tu veux les charger dynamiquement, tu es oblig� d'ajouter un id_pere ou une chose de la sorte. Pq tu n'aurais pas le droit de l'ajouter ?? En mettant dans la base que c'est un champs qui peut etre nul, il n'y a pas de pb...si?

  6. #6
    Mod�rateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par d�faut
    effectivement je pourrais l'ajouter, mais je ne dois pas le faire, ordre formel.

    Donc je travaille sur la methode generique a qui passer une requete et ce fichu id selectionn� optionel.

    J'avance, j'avance, ca devrait venir, mais un peu d'aide ne me ferait pas de mal

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Factorisation de code graphique
    Par jsebfranck dans le forum Windows Forms
    R�ponses: 7
    Dernier message: 01/05/2008, 01h12
  2. [C++] Factorisation de code
    Par xterminhate dans le forum C++
    R�ponses: 6
    Dernier message: 07/11/2006, 16h21
  3. factoriser du code
    Par grabriel dans le forum Langage
    R�ponses: 3
    Dernier message: 26/10/2006, 15h00
  4. R�ponses: 7
    Dernier message: 01/08/2006, 11h58
  5. R�ponses: 4
    Dernier message: 06/11/2003, 10h37

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