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 :

[VB.NET] Comment récupérer un événement provenant d'un UserControl ?


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 6
    Points
    6
    Par défaut [VB.NET] Comment récupérer un événement provenant d'un UserControl ?
    Bonjour

    Pour la création d'un site Internet j'ai créer un petit calendrier montrant les 14 mois précédant et encapsuler celui-ci dans un usercontrol. Ce calendrier (Datalist) gère l'évenement sur le click d'un item représentant un mois. Ce click assigne le mois à une variable de session.

    Le problème c'est que cette assignation s'effectue après le chargement de la page contenant l'UC. En effet l'évênement ItemCommand de l'UC intervient après le Page_Load de la page principale. Donc ma question est comment récupérer cette évenement dans la page principale? Afin de pourvoir prendre en compte le changement de cette variable de session.

    Sinon est-il possible de lancer une fonction contenue dans la page principale dans la fonction ItemCommand de l'UC?

    PS: je développe sous Framework 1.1

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Le plus propre c'est que ton controle lève son propre évènement qd l'utilisateur sélectionne une date. La page n'a plus qu'a s'abonner à cet évenement

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Et comment faire pour que la page s'abonne à cette évênement?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Dans l'user controle:

    Actuellement mon contrôle lève l'évênement

    Protected Sub dlListMonth_ItemCommand(ByVal sender As Object, ByVal e As DataListCommandEventArgs)

    Session("MonthData") = e.CommandArgument

    End Sub

    Comment je peux m'abonner à cette évênement dans la page principale?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Dans l'user control :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Public ChangeMonth As EventHandler
     
    'Fonction executer par l'evenement leve
        Protected Sub dlListMonth_ItemCommand(ByVal sender As Object, ByVal e As DataListCommandEventArgs)
     
            Session("MonthData") = e.CommandArgument
            ChangeMonth(sender, e)
     
        End Sub
    Dans le code de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    'Declaration de l user control
        Protected Sp As CalendrierMensuel
     
    'AddHandler Sp.ChangeMonth, AddressOf dlListMonth_ItemCommand
     
     
        Protected Sub dlListMonth_ItemCommand(ByVal sender As Object, ByVal e As DataListCommandEventArgs)
     
            Label1.Text = Session("MonthData")
     
        End Sub
    'AddHandler Sp.ChangeMonth, AddressOf dlListMonth_ItemCommand
    Ne marche pas car change month n'est pas un event de l'user control

    Si quelqu'un pouvait m'aider parce que la je bloque bien.

    Merci

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai trouvé une solution qui fonctionne, si quelqu'un peut me dire si elle est valable


    Dans la page:

    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
     
     
    Public Class Main
        Inherits System.Web.UI.Page
     
    #Region " Web Form Designer Generated Code "
    ...
    #End Region
        'UC où l'évênement doit être récupéré
        Protected WithEvents CalendrierMensuel1 As CalendrierMensuel
     
        Private _strPeriode As String
        Private _LstDomain As ListDomain
        Protected ucchbStatus As chbStatus
     
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            AddHandler CalendrierMensuel1.ChangeMonth, AddressOf ChangeMonthEvent
            ...
     
        End Sub
     
        Private Sub BinddgStatusDomain()
            ...
        End Sub
     
     ....
     
        Private Sub ChangeMonthEvent() Handles CalendrierMensuel1.ChangeMonth
     
            Me._strPeriode = Session("MonthData")
            BinddgStatusDomain()
     
        End Sub
     
    End Class
    Dans l'UC

    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
     
     
    Public Class CalendrierMensuel
        Inherits System.Web.UI.UserControl
     
        Public Event ChangeMonth()
     
    #Region " Web Form Designer Generated Code "
    ...
    #End Region
     
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        ...
     
        End Sub
     
     ...
     
        Protected Sub dlListMonth_ItemCommand(ByVal sender As Object, ByVal e As DataListCommandEventArgs) Handles dlListMonth.ItemCommand
     
            Session("MonthData") = e.CommandArgument
            RaiseEvent ChangeMonth()
     
        End Sub
     
     
    End Class

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

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. Réponses: 16
    Dernier message: 22/03/2005, 21h57
  3. [IDE][VS.NET] Comment sauvegarder l'état des 'Region' ?
    Par CkurcK dans le forum Contribuez
    Réponses: 2
    Dernier message: 23/02/2004, 14h33
  4. [vb.net] Comment vider un buffer ?
    Par mdc dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/12/2003, 15h43
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/03/2003, 10h22

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