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 :

DropDownList1.SelectedItem.Text génère une exception


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut DropDownList1.SelectedItem.Text génère une exception
    Bonjour,

    J'ai un DropDownList chargé par SqlDataSource, et je veux contrôler sur la chaîne de variables séléctionnée. Je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (DropDownList1.SelectedItem.Text == "xxx")
            {....
    alors l'erreur suivant s'affiche:

    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
    Si je fais
    alors je contrôle sur la valeur de "xxx" et non sur lui-même !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    As tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DropDownList1.SelectedValue == "xxx"
    Sinon, au moment ou ton test est exécuté, ta dropdownlist contient-elle des éléments ?
    Formulé autrement, est-ce que ta dropdownlist ne perd pas ses éléments au moment du post back ?
    Comment fais tu ton binding ? Dans la page ou dans le code behind ?

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    Oui, j'ai déjà essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DropDownList1.SelectedValue == "xxx"
    ---> SelectedValue prend la valeur de la ville et non son nom affiché.

    voilà une partie de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="sds1" DataTextField="VILLE" DataValueField="IDVILLE" AutoPostBack="True"></asp:DropDownList>
    <asp:SqlDataSource ID="sds1" runat="server" ConnectionString="<%$ ConnectionStrings:csBASE %>"
                    SelectCommand="SELECT * FROM [VILLES] ORDER BY [VILLE]"></asp:SqlDataSource>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Ca plante parce que ton SelectedItem est null, et si il est null c'est parce que au moment ou tu fais ton test, ta combo a perdu ses données.
    La question c'est de savoir pourquoi elle les a perdues...
    Ou est exécutée ton test ?
    Dans les méthodes init() ou load() de ta page ? ou bien dans l'évènement SelectedIndexChanged de ta combo ?

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    protected void Page_Load(object sender, EventArgs e)
        {
     
     
        }

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Peut etre en rajoutant un test sur Page.IsPostBack ?
    (et en testant DropDownList1.SelectedIndex != -1 pour éviter une exception...)
    Comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    if (Page.IsPostBack)
    {
       if (DropDownList1.SelectedIndex != -1 && DropDownList1.SelectedValue == "xxx")
       {...}
    }

  7. #7
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    Je vais essayer, mais pourquoi DropDownList1.SelectedValue donne la valeur IDVILLE et ne donne ni le vide ni le nom de la ville !?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Etant donné que tu as écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:DropDownList (...) DataTextField="VILLE" DataValueField="IDVILLE" />
    Cela signifie que lorsqu'une valeur sera sélectionnée dans le dropdownlist :
    1. ddl.SelectedValue te donnera l'idVille (DataValueField="IDVILLE")
    2. ddl.SelectedText te donnera le nom de la ville (DataTextField="VILLE")

Discussions similaires

  1. Relancer l'instruction ayant générée une exception
    Par patrice@ dans le forum Delphi
    Réponses: 3
    Dernier message: 05/07/2015, 17h59
  2. HQL génère une Exception
    Par nader1987 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 31/05/2012, 17h44
  3. Accès au bundle génère une exception
    Par *alexandre* dans le forum JSF
    Réponses: 2
    Dernier message: 02/06/2009, 15h58
  4. Réponses: 1
    Dernier message: 23/03/2009, 23h09
  5. Réponses: 13
    Dernier message: 11/10/2008, 12h24

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