je suis entrain de créer des objets pa rapport à un mon modèle relationnel.
Le problème est que mes objets contiennent des proriétés qui font référence à des ID sur d'autres objets.
Lorsque j'utilise un gridview j'aimerais ne pas afficher les ID qui font référence à ces autres objets mais plutot les valeurs appartenant a ces objets.
Pour être sur de bien me faire comprendre. J'ai un objet personne(Nom,prenom,RefEquipe) et un objet Equipe(Nom,division, etc ...)
j'aimerais quand j'affiche mon objet "personne "dans mon gridview pouvoir afficher --> Nom,prenom et Nom de l'Equipe par exemple
je sais le faire si j'encapsule l'objet "equipe" dans l'objet "personne" qui sera affiché dans mon gridview mais cela me donne une dépendance entre les 2 objets hors je pense que ce ne soit pas une bonne solution.
Comment établir la relation avant l'affichage des propriétés fesant référence à cet autre objet ????
Je n'ai pas bcp d'expérience dans ce type de développement donc n'hésitez pas à m'orienter si ma méthode de procédé est mauvaise. Je vous remercie, bcp.
En ASP.Net cela n'aurait pas été difficile mais en WindowsForms il faut que tu utilises une autre technique. La première solution serait d'utiliser une "vue" objet générique (ObjectView par exemple).
Mais dans ton cas tu peux faire la vue par toi même, en créant une collectioin fortement typées sur un objet de type MaVue, et Mavue contiendrait les propriétés que tu veux afficher. Le Get de chacune de ces propriétés va résoudre les relations, et/ou faire le traitement "complexe" que tu veux effectuer pour renvoyer la valeur à afficher.
Sébastien Ros
Posts:
Posted: 26.avr 2006 - 21:14
j'ai oublier de préciser il s'agit d'asp.net pardon.
Posts:
Posted: 26.avr 2006 - 21:14
C'est du aspnet peux tu me dire comment tu aurais fait, merci !
Dans ton databinding, tu peux appeler une propriété aussi bien qu'une méthode. Dasn ton cas tu devras créer une méthode qui te renvoie le champs que tu souhaites afficher et qui prenne en paramètre l'objet que tu auras mis dans ta grille. Il faut donc que tu utilises un TemplateField pour ces champs et la commande <?# Bind(...) %>