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

NHibernate Discussion :

NHibernate,Dropdownlist et selectedvalue


Sujet :

NHibernate

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut NHibernate,Dropdownlist et selectedvalue
    Salut à tous,

    J'ai un petit probleme avec nhibernate et les dropdownlists...
    J'ai une page avec un formview en mode edit.
    Le formview est bindé à un objet qu'on va appeler Produit.
    Cet objet est recupéré de la base via nhibernate.
    Le produit en question à plusieurs propriétés de base (string, int...) et une propriété de type Objet qu'on va appeler Categorie.

    Dans le formulaire j'ai un dropdownlist qui a comme datasource la liste des catégories disponibles.
    Jusqu'ici tout fonctionne à merveille.

    Là où ca se corse, c'est sur le selectedvalue... J'ai bindé la propriété SelectedValue du dropdown sur la propriété Categorie du Produit. Et là j'ai une exception comme quoi la catégorie à sélectionner n'existe pas dans la collection d'items.

    J'ai bien vérifié via l'evenement pageload si mes deux objets étaient bien égaux en faisant comme ceci :
    J'ai récupéré la liste exhaustive des catégories et j'ai testé si la catégorie[N].equals(Produit.Categorie) renvoyait bien true et c'est bien le cas. Donc là j'avoue que je ne comprend pas l'exception.
    Auriez vous une idée ?
    Merci d'avance
    @ bientot

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    La propriété selectedvalue attend une valeur (une chaine) et non un objet.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Salut !

    Ouep c'est ce que j'ai cru comprendre...
    Alors comment fait-on lorsque l'on utilise un ORM qui au lieu d'avoir des DTO du style

    int PK
    String Prop1
    String Prop2
    int Ref_IdCategorie

    te permet d'avoir

    int PK
    String Prop1
    String Prop2
    Categorie Categ

    Ou Categ est un DTO lui meme ? le binding n'est pas possible ? ou alors il faut user du code behind ? je trouve ça limite quand meme à notre époque !
    Je suis en train de regarder du coté de MVC voir si ca peut regler mon probleme parce que bon, en 2010, se prendre le chou à coder en non objet (enfin on s'comprend), c'est pas terrible je trouve...

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Et bien teste la valeur et non l'objet. Tu as peut-être fait une erreur de conception
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Beh j'y ai pensé mais le soucis est un peu plus global :

    Tu as un objectdatasource avec une méthode d'update settée. Dans ses parametres tu as forcement cette fameuse property Ref_IdCategorie.

    Maintenant, dans le formview au niveau de l'editTemplate, tu bindes tes valeurs pour qu'elles puissent etre utilisées à la lecture (pour l'affichage initial) et pour l'envoi des valeurs lors du submit (via les parametres de la methode update de l'objectdatasource).

    Le soucis c'est que faire un bind sur la valeur ça fonctionne pour l'affichage (donc en utilisant Bind("Categorie.Id")) et la dropdown sera bien fixée sur l'item en question. Mais lors de l'update, le parametre n'est pas bon car il ne trouve pas de méthode ayant pour parametre "Categorie.Id" et je ne pense pas que mettre un parametre avec un point à l'interieur fasse bon ménage (tu me diras j'ai pas testé mais je prefere pas).

    Donc voila pourquoi je suis bloqué...

Discussions similaires

  1. DropDownLists dynamique SelectedValue
    Par Neodream dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/04/2010, 09h46
  2. DropDownList et SelectedValue
    Par italiasky dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/03/2010, 17h44
  3. DropDownList dans UserControl et selectedValue
    Par nico_4802 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/06/2009, 13h55
  4. [DropDownList] Pas d'attribut SelectedValue ?
    Par Wookai dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/10/2007, 14h03
  5. Réponses: 5
    Dernier message: 22/08/2006, 20h38

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