Accueil > Forum > > > > DropDownList et DataSource d'objets
DropDownList et DataSource d'objets
vendredi 13 avril 2007 à 20:26:09 |
DropDownList et DataSource d'objets

Alexandre Marlot
|
Bonjour. Je désire alimenter une DropDownList à partir d'une collection d'objet. Je réalise pour cela un binding avec les propriété value et text (afin d'avoir un affichage correct). Tout cela marche très bien. Lorsque j'affecte mon dataSource, j'affecte une collection d'objet qui contienne plusieurs property(nom,prenom, age ...) . J'aimerais pouvoir récupérer ses property lorsque par exemple on selectionne une ligne de cette dropdownlist afin de les afficher directement (sans les rechargées !). Je n'ai pas réussis à obtenir mes objets que j'avais affecté lors du binding. Il n'existe pas de : monDropDownList.selectedItem.getObject() :(((( (ou équivalent). J'espère avoir été clair :) Si ce que je veux faire n'est pas possible, comment dois je faire proprement ce genre de chose ? Merci d'avance Alexandre
|
|
samedi 14 avril 2007 à 13:12:24 |
Re : DropDownList et DataSource d'objets

makito
|
Utilise un tableau public de tes objets
|
|
samedi 14 avril 2007 à 13:32:14 |
Re : DropDownList et DataSource d'objets

Alexandre Marlot
|
Bonjour.
J'y avais bien pensé mais il faut que je déclare le tableau en static si mes souvenirs sont bon non ? (car sinon le tableau est remis à null à chaque PostBack ...)
De plus, si je met en static cela veut dire que le tableau contiendra les mêmes données pour toutes les instances de la page ! Ce qui veut dire que tous le monde aura les mêmes données.
Je me trompe ou pas ?
Alex
|
|
samedi 14 avril 2007 à 13:53:48 |
Re : DropDownList et DataSource d'objets

makito
|
as tu beaucoup de données? sinon tu peux utiliser les sessions
|
|
samedi 14 avril 2007 à 15:48:33 |
Re : DropDownList et DataSource d'objets

Alexandre Marlot
|
Non je n'ai pas énormement de données. c'est donc une solution envisageable...
C'est pas un peu lourd pour si peu de chose ?
Il n'y a pas d'autre technique ? (meme si cela n'a rien avoir avec ma proposition initial ) ?
En tout cas merci ;) Alex
|
|
samedi 14 avril 2007 à 19:18:25 |
Re : DropDownList et DataSource d'objets

Nurgle
|
Réponse acceptée !
Salut, N'oublies pas que le web fonctionne en mode déconnecté : ASP.NET ne conserve rien entre 2 postback ! Ou plutôt, il ne conserve (dans le ViewState) que le contenu de la DropDownList, donc pas tout ton objet mais juste un String. Dans ton cas je vois deux possibilités : - Soit tu stockes toutes tes données en Session, pour éviter une grosse requête au PostBack. - Soit tu voies ça différement, c'est ta première requête qui ne va pas : Lorsque tu remplies ta DropDownList, tu n'as pas besoin d'avoir derrière une collection d'objets, juste une liste des noms des personnes (si l'objet représente une personne...  ) ou d'un autre champ. Et ensuite au postback, là tu fais une requête pour séletionner uniquement l'objet complet correspondant à ce nom là. C'est de loin cette deuxième solution que je conseillerais car, dans le 1er cas, tu charges une collection de pleins d'objets alors que tu ne cherches qu'à avoir une liste de noms à afficher, et qu'en plus après tu n'en affichera qu'un seul, celui qui sera choisit par la DropDownList. Ce qui te fait charger pleins d'objets en mémoire pour rien... et ensuite tous te les trimballer dans une variable de Session... A++ 
Nurgle (Antoine) - MSP
|
|
samedi 14 avril 2007 à 21:52:49 |
Re : DropDownList et DataSource d'objets

Alexandre Marlot
|
Oki merci pour cette explication détaillée et très instructive ! Je voulais etre sur que ASP.NET ne sauvegardé que le contenu de la dropdownlist et non tous mes objets !
Je vais donc a partir de maintenant réaliser tous mes dévellopements à partir de la 2eme méthodes !
Merci beaucoup pour ton aide. Alex
Dans le même esprit j'en profite pour poser une autre question. Imaginons que je veille affiché deux champs dans le DataTextField : Nom et prenom. Je peux faire ca au niveau du Binding ? Bien sur une solution c'est de faire une property au niveau de ma source de donnée qui concatene le nom et le prenom ...
Mais si on veut faire du N-Tiers, logiquement c'est le role de la GUI :)
Enco
|
|
samedi 14 avril 2007 à 23:02:13 |
Re : DropDownList et DataSource d'objets

Nurgle
|
Réponse acceptée !
De rien  Pour ton autre question, effectivement la DropDownList ne prend en paramètre qu'un seul champ... C'est là que les types anonymes seraient bien utiles, mais bon... il faudra attendre C# 3 pour ça Je vois 3 solutions : - Soit tu ne veux pas modifier tes classes métiers, ce qui est effectivement le plus sage  , dans ce cas crée une nouvelle List<String> et fait une boucle sur ta collection d'objet, et ajoute pour chaque objet un String contenant Nom + Prénom, et tu bind cette liste à la DropDownList. - Soit tu peux modifier ta classe métier, dans ce cas effectivement, rajouter une propriété fonctionnerait. - Sinon, il y a une ruse  : Overrider le .ToString() pour le faire renvoyer Nom + Prénom, et ensuite tu laisses DataTextField vide, et je pense (à vérifier, mais je suis presque sûr) qu'il va ainsi appeller .ToString() sur tes objets, ne sachant pas quoi en faire  (C'est toujours pratique, surtout que tu peux réutiliser ce .ToString() autre part pour afficher directement Nom + Prénom, sans avoir de propriété supplémentaire... De plus Visual Studio, si jamais tu vois un jour un de tes objets en pas à pas ou en mode débug, t'affichera directement le Nom + Prénom, plutôt que le type de l'objet, c'est toujours pratique) Mais bon, c'est vrai... la méthode la plus respectueuse du n-tiers reste la première ;) 
Nurgle (Antoine) - MSP
|
|
samedi 14 avril 2007 à 23:38:09 |
Re : DropDownList et DataSource d'objets

Alexandre Marlot
|
Merci encore une fois pour cette explication pationnante :)
De loin la solution 1 est la meilleur ! Mais très fastidieuse :( Ca fait redéclarer des variables ... refaire des parcours de boucle ... c'est pas terrible ... J'aime bien les choses carrées ;) Et puis ma boite me donne pas des années pour faire mes programmes lol
c'est vrai que l'astuce du toString () est pas bete mais c'est un peu du bidouillage lol ...
Bref sur ce point précis .NET est pas terrible :) JAVA en architecture J2EE on peux faire ce genre de truc facilement (sans dataBinding forcement !)
Il aurait pu prévoir ce cas chez Microsoft quand meme loool c'est bidon comme truc lol ...
Bref je vais réfléchir à tous ca pendant la fin de mon week-end lol :)
En tous les cas tu as l'air de bien connaitre le sujet et les architectures N-Tiers ! MSP Powa :))))
Alex PS : Je n'hésiterai pas à reposter des questions sur .NET (plus du coté architecture N-tiers :))
|
|
dimanche 15 avril 2007 à 12:43:44 |
Re : DropDownList et DataSource d'objets

Nurgle
|
Je cite quand même une dernière possibilité : Ne pas utiliser le DataBinding ! Tu fais une boucle sur tes objets, et ajoute pour chaque item un Item dans la DropDownList qui contiendra Nom + Prénom... (J'étais tellement dans le problème du DataBinding que j'ai pas eu l'idée de faire sans...  ) Cette solution là me parait de loin la plus simple à mettre en place. PS : n'hésite pas à poser des questions, on est là pour ça ^^ 
Nurgle (Antoine) - MSP
|
|
Cette discussion est classée dans : objet, dropdownlist, collection, datasource, objets
Répondre à ce message
Sujets en rapport avec ce message
Récupération d'objet Javascript [ par Ekik ]
Bonjour,Est-il possible de récupérer en ASP des objets javascript comme des tableaux, des objets,... qui proviennent d'une page quelquonque, Merci!Céd
recuperer le nom des champs d'un form dynamique [ par Kashiko ]
Je propose le choix de recherches d'objet selon l'objet en question, ou le nom de son possesseur.J'ai dan une table la liste des objets. Je propose un
Gridview, objectdatasource et relationnel [ par lbnetwork ]
Bonjour, 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 fo
DropdownList vide [ par cbu ]
Bonjour,j'utilise une dropdownlist qui me retourne une liste de Pays. Je le crée avec l'assistant, tout se passe pour le mieux, il me crée mon DataSou
scripts et objets SVG [ par Squall____ ]
Bonjour à tous, J'ai vraiment besoin d'aide. Je dois développer une application web utilisant le SVG et je me dois être capabkle de faire communiq
Binding d'un objet ou collections d'objets (ASP.NET / C#) [ par CToph ]
Bonjour, Je cherche un moyen de réaliser une liaison d'objet (
Editor >> Collection d'objets de type différent... [ par Bubuss ]
Bon voilà, j'ai plusieur objets de types différents et j'aurai souhaité pouvoir créer une propriété sur mon Control à la manière de la propriété Colum
DropDownList + Datasource (Bind avec une valeur null possible) [ par cfeltzsni ]
Bonjour, j'ai un problème avec l'utilisation des DropDownList dans un formulaire. Pour simplifier les explications voici une partie du code : <asp:Sql
Récupérer controle dans un edit template [ par spirfite ]
Bonjour à tous, Je sollicite votre aide pour le problème suivant : J'ai un dataList nommé dataArticles. Dans l'editItemTemplate, j'ai une dropDownLi
sqldatasource et dropdownlist [ par cyberfinger01 ]
Bonjour tout le monde, Je travail avec asp .net. J'ai un sqldatasource que j'ai mis dans un dropdownlist. quand je lance la page je n'ai rien[^^peur].
Livres en rapport
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Forum
CONFIGURER SMTPCONFIGURER SMTP par nsegi
Cliquez pour lire la suite par nsegi LES UTILISATEUR LES UTILISATEUR par bahij
Cliquez pour lire la suite par bahij
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|