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

VB.NET Discussion :

Générer Dropdownlist à la volée ET récupérer leurs valeurs


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Par défaut Générer Dropdownlist à la volée ET récupérer leurs valeurs
    Bonjour,

    Pour faire simple : J'aimerais une dropdownlist, et quand on en change la valeur, une seconde arrive, et ceci à l'infini. J'ai essasyé avec un listview mais j'arrive pas à récupérer les valeurs avant la réinitialisation...

    J'ai un problème depuis vendredi pour lequel je n'arrive pas à trouver une solution valable.
    Je dois réaliser un intranet pour un E-commerce. Pour un produit, l'admin doit pouvoir choisir autant de catégories qu'il veut. J'avais voulu tester à cette occasion de créer une dropdownlist avec toutes les catégories (valeur null par défaut), et lorsqu'il en modifie la valeur, une nouvelle dropdownlist apparait.

    Je n'arrive malheureusement pas... J'ai essayé de mettre la dropdownlist dans une listview dont la datasource est un array(Session) des ID_Catégories déjà sélectionnées... Mais comme la création de ma dropdown se fait dans le ItemCreated du listview, celui-ci est appelé avant la fonction que lance la dropdown à son changement d'index... Du coup mes dropdown sont réinitialisées avant de pouvoir être analysées...

    Je crois pas que mon code puisse aider (vu que je crois que c'est plutot un problème d'évènement déclenché au mauvais moment) mais au cas ou :
    Code Page_Init : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    myCategory = New ArrayList()
    myCategory.Add(-1)
    Session("Category") = myCategory
    ListviewInit()

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     Protected Sub ListviewInit()
            myCategory = Session("Category")
            intlvcount = 0
     
            lvCategory.DataSource = myCategory
            lvCategory.DataBind()
        End Sub
     
        Protected Sub ddlCategorySelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.DropDownListSelectedIndexChangedEventArgs)
     
            For Each item In lvCategory.Items
                Dim ddlCategory As DropDownList = CType(item.FindControl("ddlCategory"), DropDownList)
                myCategory.Add(ddlCategory.SelectedValue)
            Next
     
            Dim maxlgt = myCategory.ToArray.Length - 1
            If myCategory.Count >= 2 Then
                If myCategory.Item(maxlgt - 1) = "-1" Then
                    'Deux derniers dropdown à vide -> enlever le dernier
                    myCategory.RemoveAt(maxlgt)
                Else
                    If myCategory.Item(maxlgt) = "-1" Then
                        'Valeur avant dernière a changé -> refresh la dernière sans nouvelle valeur
                    Else
                        'Deux dernièers valeurs remplies -> ajouter une nouvelle
                        myCategory.Add(-1)
                    End If
                End If
            Else 'If myCategory.Count = 1
                'Ajouter une nouvelle DropDown car la premiere a été choisie
                myCategory.Add(-1)
            End If
     
            Session("Category") = myCategory
            ListviewInit()
     
        End Sub
     
        Protected Sub lvCategory_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles lvCategory.ItemCreated
     
            If (e.Item.ItemType = ListViewItemType.DataItem) Then
                myCategory = Session("Category")
                Dim ddlCategory As DropDownList = CType(e.Item.FindControl("ddlCategory"), DropDownList)
     
                Dim intlgid = AppSettings("IntranetLanguageId")
                Dim mycat = (From p In db.Translate_ProductCategories _
                            And p.Language_ID = intlgid _
                            Order By p.Name _
                            Select p.ProductCategory)
     
                Dim tmpRadItem As New ListItem
                For Each cat In mycat
                    tmpRadItem = New ListItem
                    tmpRadItem.Value = cat.ID_Category
                    tmpRadItem.Text = GetCategoryName(cat.ID_Category, intlgid)              
                    ddlCategory.Items.Add(tmpRadItem)
                Next
                'If myCategory.Count = 1 Or Session("lvcount") > 0 Then
                tmpRadItem = New ListItem
                tmpRadItem.Value = -1
                tmpRadItem.Text = "---"
                ddlCategory.Items.Insert(0, tmpRadItem)
                'End If
                If intlvcount > -1 Then
                    ddlCategory.SelectedValue = myCategory.Item(intlvcount)
                End If
                ddlCategory.DataBind()
     
                intlvcount += 1
            End If
        End Sub
    Que puis-je faire pour récupérer les données de mes dropdown avant qu'elles soient réinitialisées ?
    Si ça manque de précision, demandez moi... Toute idée/renseignement est bon à prendre !

  2. #2
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Par défaut
    Personne n'aurait une piste pour m'aider à contourner ou résoudre ce problème ?

    Merci à tous

Discussions similaires

  1. Récupérer la valeur des dropdownlists dans GridView
    Par dcarroz dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/01/2010, 11h32
  2. Réponses: 26
    Dernier message: 06/05/2009, 00h14
  3. Réponses: 0
    Dernier message: 15/12/2008, 17h14
  4. Récupérer la valeur de ma DropDownList.
    Par LestoK dans le forum ASP.NET
    Réponses: 4
    Dernier message: 30/06/2008, 17h31
  5. Récupérer la valeur d'un DropDownList
    Par rad_hass dans le forum C#
    Réponses: 1
    Dernier message: 19/02/2008, 16h55

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