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 :

DDL le selectedValue qui select pas


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut DDL le selectedValue qui select pas
    Bonjour tout le monde.

    Je suis devant un cas qui doit être simple, mais je trouve pas d'explication.

    J'ai posé une DDL dans le HTML et dans le code Behind je la rempli comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With ddl
                .DataSource = dtParagraphe
                .DataTextField = "Para_Titre"
                .DataValueField = "ParagrapheId"
                .DataBind()
                .SelectedValue = "41907689-BE56-48BC-A3C9-6CFAEC5CCA68"
            End With
    J'ai vérifié que la chaine est bien présente dans le retour de la table.

    Là, je devrais avoir le troisième Item de sélectionné et j'ai le premier.

    Et je comprends pas pourquoi.

    Vous pouvez m'aider ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Après le DataBind() as-tu essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ListItem _matchingItem = ddl.FindByValue("41907689-BE56-48BC-A3C9-6CFAEC5CCA68");
    if(_matchingItem != null)
         _matchingItem.Selected = true;
    Ou au cas où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ListItem _matchingItem = ddl.FindByValue("41907689-BE56-48BC-A3C9-6CFAEC5CCA68");
    if(_matchingItem != null)
        ddl.SelectedValue =  _matchingItem.Value;
    En espérant t'avoir aidé.

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.

    Je n'ai pas de FindByValue de disponible sur la DDL, je ne peux pas appliquer ton idée. Ne serait ce pas un truc exclusif au C# ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    ET si tu passes par selectedItem ?

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Citation Envoyé par tortuegenie Voir le message
    ET si tu passes par selectedItem ?
    Cette propriété est rEadOnly, donc impossible de lui attribuer une valeur.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  6. #6
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Je n'ai pas de FindByValue de disponible sur la DDL, je ne peux pas appliquer ton idée. Ne serait ce pas un truc exclusif au C# ?
    Non c'est simplement que j'ai écris le code vite fait en live. Pour être plus précis il faut faire DropDownList.Items.FindByValue().

  7. #7
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ok Nicolas, je comprends mieux maintenant.

    Alors en VB.NET ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim _matchItem As ListItem = ddl.Items.FindByValue("41907689-BE56-48BC-A3C9-6CFAEC5CCA68")
            If _matchItem IsNot Nothing Then
                ddl.SelectedValue = _matchItem.Value
            End If
    Mais l'ennui c'est que, dans cette formulation là ou dans l'autre, ça Select toujours pas.

    Pas d'erreur, le code passe bien, j'ai bien comrpis le principe et l'idée, mais ça select pas, que dalle, il reste sur la première entrée.

    Je ne sais plus quoi faire.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  8. #8
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Ceci fonctionne très bien, je viens de tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:DropDownList ID="ddl" runat="server" />
    et le code-behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    List<Test> lst = new List<Test>();
    lst.Add(new Test(){Name="Test1", Value="Test1"});
    lst.Add(new Test(){Name = "Test2", Value = "Test2" });
    lst.Add(new Test(){Name="Test3", Value="Test3"});
     
    ddl.DataSource = lst;
    ddl.DataTextField = "Name";
    ddl.DataValueField = "Value";
    ddl.DataBind();
     
    ddl.SelectedValue = "Test2";
    Ton Guid il stocké sous forme de string dans ta DataSource ou bien sous forme de Guid ?

  9. #9
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Je n'en doute pas un seul instant.
    J'ai été parfaitement incapable de traduire ce code en VB.NET, mais je te fais confiance.

    Par contre, je vois jsute uen détail qui fais, à mon avis toute la différence : tu ajoutes les éléments dans la DDL avec une liste de chose que je ne connais pas.

    Dans mon cas, les infos viennent de la Base de donnée par une DataTable, le problème ne viendrait il pas de là ?

    Le GUID est stocké en UNIQUEIDENTIFIER dans la BDD.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  10. #10
    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 : 40
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Dans la méthode dans laquelle tu remplis ton datatable, applique à chaque item un .ToString().ToUpperInvariant().

    Fais en de même sur .SelectedValue = "41907689-BE56-48BC-A3C9-6CFAEC5CCA68"

  11. #11
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ok, j'ai vu.

    Bon j'ai pas fait comme ça, j'ai fais un CAST dans mes requêtes, j'ai tout mis en VARCHAR(40), comme ça, je suis tranquille depuis la source.
    Et si je dois les réusitliser, en général, c'est dans des requêtes et il faut aussi que ce soit en String, donc pas de soucis.


    Et donc, si j'ai bien comrpis, le problème depuis le départ c'est juste une histoire de format parce qu'il trouve pas la chaine en question à partir d'un GUID. Mais il pouvait pas me le dire avant, non ?


    En tout cas merci les gars, merci beaucoup.
    Maintenant, j'ai plus qu'à m'occpuer de la récupérer dans l'autre côté, cette DDL.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  12. #12
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Et donc, si j'ai bien comrpis, le problème depuis le départ c'est juste une histoire de format parce qu'il trouve pas la chaine en question à partir d'un GUID. Mais il pouvait pas me le dire avant, non ?
    Et oui c'est ça de travailler avec des chaînes de caractères et non pas un typage fort, le compilateur ne peut rien détecter .

    Le principal c'est que ton problème soit résolu.

  13. #13
    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 : 40
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Et oui c'est ça de travailler avec des chaînes de caractères et non pas un typage fort, le compilateur ne peut rien détecter .

    Le principal c'est que ton problème soit résolu.
    Je n'avais pas osé le dire

  14. #14
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ok, je sens bien qu'il y a de la vanne dérrière tout ça, mais si vous m'expliez un poil, ça m'arrangerait, je capte pas la subtilité ?

    C'est le fait de travailler en VB ou c'est juste parce que je type pas bien mes choses ?

    Si c'est le VB, pas la peine d'aller plus loin, le C# c'est trés bien, mais :
    - j'y arrive pas
    - j'ai pas trop la niak pour apprendre un nouveau langage
    - j'ai genre 20 000 lignes de code à refaire !!!

    Si c'est le typage, j'attends vos idées, je sens bien que j'ai encore pas ma lde choses à apprendre.

    Si c'est autre chose, je suis tout ouï.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  15. #15
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    T'emballes pas Zoofy, il n'y avait rien de moqueur dans le précédent post.

    La remarque sur le fait de travailler avec un string ou lieu du bon type est générale. De même elle n'est pas propre à VB.NET ou C# ou même Java.

    Je disais simplement que si tu compares un Guid avec une chaîne de caractères plutôt qu'avec un Guid (donc le bon type), le compilateur ne détectera pas si ta chaîne est bien formée ou pas (ou comme dans ton cas, pas avec le bon cast) . Ce ne sera que lors de l'exécution qu'on verra la présence d'une erreur ou non.

    Bref l'utilisation de chaîne de caractère est pratique pour coder vite mais ne permet pas au compilateur de bien faire son boulot.

    Et rassure toi, tu es loin d'être le seul, moi y compris, à faire souvent cette erreur

  16. #16
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    T'emballes pas Zoofy, il n'y avait rien de moqueur dans le précédent post.
    Je m'emballe pas, certaiement pas avec toi ou Calagan99, j'ai l'habitude de vous voir sur mes topics et je ne vous remercierais jamais assez de l'aide que vous me donnez.

    C'était juste pour savoir, j'étais curieux et ouvert.
    Merci pour cette explication, je comprends mieux et je vais essayer de faire attention à l'avenir.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  17. #17
    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 : 40
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Zooffy, tout pareil que Nicolas, loin de moi l'idée de vanner.
    C'est juste que cette erreur est liée à une mauvaise habitude que beaucoup (dont moi) ont : tout caster en string.
    C'est beaucoup plus simple, mais cela conduit à des erreurs telles que celle décrite dans ce post.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/01/2012, 11h29
  2. Select qui marche pas dans variable
    Par sawyer20 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/08/2006, 15h06
  3. qu'est ce qui va pas dans cette fonction???
    Par access001 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/04/2006, 13h10
  4. [VB6] [Système] Icones du systray qui veulent pas partir
    Par Ctof dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/10/2002, 09h41
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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