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 et SelectedIndexChanged


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut DropDownList et SelectedIndexChanged
    Bonjour à tous,

    Je reprends un projet en cours. J'ai une DropDownList qui me donne les différents mois de janvier 2006 à aujourd'hui.
    Cette dropdown est codée de la façon suivante dans un fichier qui s'appelle ListeMois.ascx


    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    Namespace BlueBerry.UserControl.DropDownList
     
        Public Class ListeMois
            Inherits ddLstBase
     
     
     
     
    #Region " Code généré par le Concepteur Web Form "
     
            'Cet appel est requis par le Concepteur Web Form.
            <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
     
            End Sub
     
            'REMARQUE : la déclaration d'espace réservé suivante est requise par le Concepteur Web Form.
            'Ne pas supprimer ou déplacer.
            Private designerPlaceholderDeclaration As System.Object
     
            Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
                'CODEGEN : cet appel de méthode est requis par le Concepteur Web Form
                'Ne le modifiez pas en utilisant l'éditeur de code.
                InitializeComponent()
            End Sub
     
    #End Region
     
     
            Public Event SelectedIndexChanged(ByVal Sender As Object, ByVal E As EventArgs)
     
            Public Overrides Sub PopulateListeItem()
     
                _DropDownList.Items.Clear()
     
                'déclaration des variables locales
                Dim i As Int32
     
                Dim lstI As ListItem
                Dim strDate As Date
                Dim DateFinMois As Date
                Dim Lib_Mois As String
     
                strDate = Now.Date.AddMonths(1) 'Now.Date.AddDays(10)
                Do Until strDate <= CType("31/01/2006", Date)
                    DateFinMois = Utils.DateUtils.FinMois(strDate)
                    Lib_Mois = Utils.DateUtils.LibMois(DateFinMois)
                    lstI = New ListItem(Lib_Mois, CType(DateFinMois, String))
                    _DropDownList.Items.Add(lstI)
                    strDate = DateFinMois
                Loop
     
            End Sub
     
            Public Property SelectedMois() As Date
                Set(ByVal Value As Date)
                    _DropDownList.SelectedValue = CStr(Value)
                End Set
                Get
                    Return CType(_DropDownList.SelectedItem.Value, Date)
                End Get
            End Property
     
            Public Property Enabled() As Boolean
                Get
                    Return _DropDownList.Enabled
                End Get
                Set(ByVal Value As Boolean)
                    _DropDownList.Enabled = Value
                End Set
            End Property
     
     
            Public Function GetFilter(ByVal ColumnName As String) As String
     
                Return ColumnName & " = '" & _DropDownList.SelectedItem.Value & "'"
     
            End Function
     
    #Region "Events"
            Private Sub DropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles _DropDownList.SelectedIndexChanged
                RaiseEvent SelectedIndexChanged(Me, e)
     
            End Sub
    #End Region
     
     
     
        End Class
     
    End Namespace

    Elle est ensuite appelé de la façon suivante dans ma page aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <%@ Register TagPrefix="uc1" TagName="ListeMois" Src="../../eUserControls/DropDownList/ListeMois.ascx" %>
     
    <tr>
    												<TD noWrap align="right" width="50%"><asp:label id="Libelle_Mois" runat="server">Mois :</asp:label></TD>
    												<TD align="left" width="50%"><uc1:listemois id="Listemois" runat="server"></uc1:listemois></TD>
    											</tr>

    Ma question est la suivante. Comment est ce que je peux effectuer un test dans ma page aspx pour voir si l'utilisateur changé sa sélection de mois dans la liste ?

    En gros comment réussir à appeler la fonction Private Sub DropDownList_SelectedIndexChanged alors qu'elle est privée ? Quel retour est ce que je vais avoir ?

    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
    Tu dois rajouter AutoPostBack = True dans la déclaration de ton uc1

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    En fait l'AutoPostBack fonctionne déjà.

    J'arrive à récupérer la bonne date sélectionnée par l'utilisateur.

    Ce que j'aimerai faire en fait est la chose suivante :
    Dès qu'un utilisateur change la date dans la dropdown je veux cacher un libellé.

    En fait c'est le même principe qu'un OnSelectedIndexChange que je veux faire.

    Seulement si je mets OnSelectedIndexChanged="HideDetails" par exemple dans la déclaration de ma DDL ça Bug. En effet mon HideDetails se trouve dans ma page aspx.

    Et la dropdownlist ListeMois est gérée dans la page ListeMois.ascx

    Je pense que la fonction suivante est faite pour ce que je veux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #Region "Events"
            Private Sub DropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles _DropDownList.SelectedIndexChanged
                RaiseEvent SelectedIndexChanged(Me, e)
     
            End Sub
    #End Region
    Seulement je ne comprends pas comment l'appeller vu qu'elle est private.

    Quelqu'un aurait-il une idée ?

  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
    J'ai l'impression que tu confonds l'événement coté javascript avec celui code behind

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    Effectivement je vois pas trop de quoi tu me parles :-)

    Pourrais-tu me donner des précisions ?

    Merci

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 312
    Par défaut
    Ben en web, tu as 2 cotés: coté client & coté serveur.

    Coté serveur tu as ton code aspnet, ton code behind.

    coté client tu as ton code javascript.

    Ils ont tous les 2 des évenements.

    L'inconvient pour lancer et gerer des evenements serveur c'est que tu dois faire des postback (partiels ou pas ).

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    Ok je vois...

    Le javascript ca m'attire pas du tout ... :-)

    Mais c'est bon j'ai résolu mon pb!

    Merci

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

Discussions similaires

  1. usercontrol dropdownlist et selectedindexchange
    Par clouddd dans le forum VB.NET
    Réponses: 0
    Dernier message: 08/06/2011, 16h18
  2. dropdownlist : probleme de SelectedIndexChanged
    Par snopims dans le forum ASP.NET
    Réponses: 7
    Dernier message: 07/01/2009, 14h52
  3. [C#] Datagrid et SelectedIndexChanged de DropDownList
    Par Raduris dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/10/2006, 15h10
  4. [C#] Forcer le selectedIndexChange sur dropdownlist
    Par bl4ckwolf dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/06/2006, 14h22
  5. [C#] Probleme avec DropDownList et SelectedIndexChange
    Par Oberown dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/02/2005, 10h35

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