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 :

DropdownList dans un Datalist en mode Edit


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut DropdownList dans un Datalist en mode Edit
    Bonjour, j'ai un petit soucis.

    Lorsque je suis en mode édition de mon datalist, j'aimerais avoir une dropdownlist remplie par une base de données. Pour le moment, je n'arrive qu'en lui ajoutant des éléments statiques à coups de <asp:ListItem>.

    Ce que j'ai essayé : lorsque mon datalist se met en mode edition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub datalstDetailGeneral_edit(ByVal src As Object, ByVal e As DataListCommandEventArgs)
            Dim requete As String
            Dim dr As SqlDataReader
            Dim dlist As DropDownList
            requete = "SELECT idVoitCat, CatF FROM VoitCat"
            dr = LibData.AccesBD.GetReader(requete) <-- ça me permet de remplir mon datareader, ne pas s'en préocuper
            dlist = CType(e.Item.FindControl("lstCarrosserie"), DropDownList)
            dlist.DataSource = dr <-- J'ai une Erreur la !
            dlist.DataValueField = "idVoitCat"
            dlist.DataTextField = "CatF"
            dlist.DataBind()
            dr.Close()
            dlist.Items.Insert(0, "Indifférent")
            datalstDetailGeneral.EditItemIndex = e.Item.ItemIndex
            rempliDetailGeneral(e.CommandArgument)
        End Sub
    et j'ai ce message d'erreur : "System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet."

    Bref, j'ai du oublier quelque chose ou on ne doit pas pouvoir faire comme ça.
    Quelqu'un peut il m'aiguiller? Merci d'avance

  2. #2
    Membre expérimenté
    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 : 55
    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
    Par défaut
    Et dans ta page ASPX, tu as quoi ?
    Parce que là, je pense qu'il ne trouve pas le DropDownList alors soit tu la mets à vide dans la page ASPX, soit tu fais un New et un Controls.Add

    Désolé de ne pas être plus précis, mais j'ai encore du mal avec les ajouts de controles par le code.

    En tout cas, ce genre de message c'est souvent un New qui manque. Comme le fait d'ajouter un controle dans la Page ASPX entraine automatiquement un New, tu as deux voies pour utiliser tes controles dans le code.

    Si ça peut t'aider, c'est toujours mieux que : "va chercher dans la FAQ ou sur GOOGLE"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut
    J'ai trouvé une solution.
    Finalement, je ne rempli pas ma dropdownlist lors du datalist_edit, mais plutot lors du datalist_databound.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub datalstDetailGeneral_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles datalstDetailGeneral.ItemDataBound
        If e.Item.ItemType = ListItemType.EditItem Then <-- Vérifie que je suis bien en mode edition dans mon datalist
            Dim requete As String
            Dim dr As SqlDataReader
            Dim dlist As DropDownList
            requete = "SELECT idVoitCat, CatF FROM VoitCat"
            dr = LibData.AccesBD.GetReader(requete) <-- ça me permet de remplir mon datareader, ne pas s'en préocuper
            dlist = CType(e.Item.FindControl("lstCarrosserie"), DropDownList)
            dlist.DataSource = dr
            dlist.DataValueField = "idVoitCat"
            dlist.DataTextField = "CatF"
            dlist.DataBind()
            dr.Close()
            dlist.Items.Insert(0, "Indifférent")
        End If
    End Sub

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/01/2011, 14h45
  2. Réponses: 2
    Dernier message: 21/01/2011, 10h31
  3. Réponses: 4
    Dernier message: 18/12/2009, 14h52
  4. [C#] Accéder au contenu d'un textbox dans un Gridview en mode edit.
    Par slideveloppeur2006 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 23/04/2008, 11h19
  5. Réponses: 2
    Dernier message: 20/01/2008, 15h04

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