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 :

pb valeur null dans dropdownlist


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par défaut pb valeur null dans dropdownlist
    Salut

    J'ai parcouru tous les topics concernant ce problème dans les forums, mais quand j'ai une valeur null dans ma base (Access), ma DropDownlist plante, avec toujours ce même message d'erreurs :

    'cmbprojet' a un SelectedValue qui n'est pas valide, car il n'existe pas dans la liste des éléments.
    Nom du paramètre : value
    Pourtant j'ai ajouté un élément vide en début de liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                ((DropDownList)FormView1.FindControl("cmbprojet")).Items.Insert(0, new ListItem("Choisir...", null));
    çà fonctionne parfaitement, mais dès que je binde ma liste, le message d'erreur apparaît. C'est incompréhensible...
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Fais voir le code où tu bindes ta ddl

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par défaut
    voici le code (désolé, mais j'ai été interrompu hier...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                    <asp:DropDownList ID="cmbprojet" runat="server" DataSourceID="ads_projet" DataTextField="proj"
                        DataValueField="num" OnSelectedIndexChanged="cmbprojet_SelectedIndexChanged"
                        Style="z-index: 108; left: 150px; position: absolute; top: 111px" Width="84px" OnDataBinding="cmbprojet_DataBinding" OnPreRender="cmbprojet_PreRender" SelectedValue='<%# Bind("projet") %>'>

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SelectedValue='<%# Bind("num") %>'

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par défaut
    Merci de me répondre si vite.
    Je n'ai pas précisé que cette DDL se trouve dans un Formview, elle est bindée sur le champ du Datasource du Formview qui s'appelle "projet". Les champs qui apparaissent dans le code que j'ai montré correspondent à la Datasource de la DDL, où le champ correspondant à celui du "Bind" s'appelle "Num", car il provient d'une autre table (c'est la clé primaire).
    Non, le problème viendrait apparemment de la différence de traitement de la valeur "null" aentre Access et VS2005. Sous access, à un champ vide est automatiquement attribué la valeur "null". Par contre, dans ma DDL, si je mets comme SelectedValue "null" (avec mon insert[0]):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((DropDownList)FormView1.FindControl("cmbprojet")).Items.Insert(0, new ListItem("Choisir...", null));
    ...il ne fait pas la coresspondance.
    Bizarre, qu'est que tu en penses ? serait-ce un bug de l'appli ? Personnellement, j'en ai déjà "subi"...
    De toutes façons, ma DDL non bindée fonctionne prfaitement, dès que je la binde.

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est "bizarre" de lui passer null comme valeur, passe lui plutot "-1" ou "0"

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par défaut
    C'est une bonne piste...
    En fait, la méthode Insert demande des paramètres string, donc je suis obligé de mettre "-1" ou "0", ce qui est différent de null...
    Par contre quand je mets "" le bind fonctionne dans le sens UPDATE.
    Il merde par contre dans le sens SELECT...
    Comment contourner le problème ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par défaut
    J'ai pensé faire dans la table de ma base un enregistrement vide, pour que je leretrouve dans la DDL. Mais comme je manipule des clés primaires, elles ne peuvent être null.
    çà pose le délicat problème de savoir ce qu'on fait quand on veut utiliser une liste de choix quand on a un champ optionnel ?
    Faut-il faire une Textbox cavhée qui récolte en réalité la valeur ?

  9. #9
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Si c'est juste pour ajouter une ligne vide de tout element en debut de ta dropdownlist, histoire de montrer que le champs est optionnel, tu as BlankValue=true

    (c'est terrible, j'ai l'impression de me répéter ... Mais bon, peut être que tu ne cherches pas à faire cela, et que c'est moi qui radotes )


  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par défaut
    Ah !! Je comprends ton point de vue. Mais tu parles sûrement de Wincontrols, moi ce sont des Webcontrols !!!
    Je n'ai pas de BlankValue en Webcontrols, c'es tbien le problème, car derrière, il y a du HTML et dans le <option value>, c'est du texte que l'on rentre, il a du mal à insérer la valeur null. Comment on dit "null" en String ?

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    ""

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par défaut
    C'est vrai, et j'ai déjà essayé cette solution, mais le problème persiste.
    Je pense que çà doit venir d'un problème de communication entre ACCESS et Visual Studio. Si c'est çà je suis dans la merde !!!

  13. #13
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Essaie, en base, de placer une chaine vide en lieu et place de NULL.

    Mais il me semble que BlankValue existe bel et bien en WebControl.. à verifier

  14. #14
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Pourquoi tu fais pas:

    ((DropDownList)FormView1.FindControl("cmbprojet")).Items.Insert(0, new ListItem("Choisir...", "-1"));

    cmbprojet.selectedvalue = "-1"

Discussions similaires

  1. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02
  2. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02
  3. [delphi 7 / DOA] valeur null dans setvariable
    Par delphim dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/11/2004, 10h14
  4. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15
  5. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52

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