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 :

Evènement Clic d'un bouton dans un UserControl => Appeler une métode de la page aspx contenant ce UserControl


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut Evènement Clic d'un bouton dans un UserControl => Appeler une métode de la page aspx contenant ce UserControl
    Bonjour,


    J'ai une page contenant 2 UserControls. (UC).

    Ces 2 UCs sont en quelque sorte liés entre eux.
    Dans le 1er, j'ai une Gridview affichant des données. Dans le 2nd, j'ai une autre GridView qui doit afficher les données spécifiques d'une ligne du 1er GridView.

    J'ai un problème pour faire se coordonner les 2 GridView (et donc les 2 UCs).

    En gros :
    1. Je clique sur un bouton d'une ligne du 1er GridView du 1er UC.
    2. Cela stocke l'ID de la ligne dans une propriété du 1er UC.
    3. Ensuite, je dois mettre à jour le 2nd GridView (2eme UC).

    J'ai une méthode ReloadUC() dans la page principale qui s'occupe de bind les données de mes 2 GridView.


    Comment faire, à la fin de l'évènement OnClick du bouton d'une ligne du GridView du 1er UC, pour mettre à jour le 2nd UC ?

    Il faudrait que j'appelle la méthode ReloadUC de la page aspx contenant les 2 UserControls.. Comment l'appeler depuis l'intérieur de cet évènement ?


    Merci de votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Depuis ton premier uc1 tu créé un évènement qui est intercepté dans ta page:

    http://lutecefalco.developpez.com/tu...asp-net/#LII-A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public event EventHandler SelectedDateChanged;
     
    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {
        if (SelectedDateChanged != null)
            SelectedDateChanged(sender, e);
    }

  3. #3
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    La best pratice serait de proposer un EventHandler dans ton UC1, auquel tu abonneras ton UC2.

    Quelque chose dans ce style par exemple.

    En espérant t'avoir aidé.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Bon,

    Faudra m'expliquer en quoi ma solution est différente.

  5. #5
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Aucun rapport avec ton message. J'ai commencé à rédiger ma réponse avant que la tienne soit postée...

  6. #6
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut
    Merci beaucoup.
    C'est ce qu'il me fallait.
    Le tutorial de luteceFalco est très bien fait, merci pour le lien.

    Pour ma part on m'a montré quelque chose de légèrement différent :

    Dans mon UC n°1, je déclare ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public string idARecuperer { get; set; }
    public event Action<string> ClickToto;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     protected void imgBtnDisplayDetailsInUC2_Click(object sender, ImageClickEventArgs e)
        {
            // Récupération de l'id de la ligne séléctionnée
            ImageButton ib = sender as ImageButton;
            idARecuperer= ib.CommandArgument;
            ClickToto(idArecuperer);
     
        }

    Dans ma page aspx conteneur :


    J'ai déclaré un champ caché dans ma page aspx, pour stocker l'id transmis depuis mon UC1. => 'lblHiddenIdARecuperer'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected override void OnLoad(EventArgs e)
        {
     
            Uc1.ClickToto += ((idARecuperer) =>
            {
                lblHiddenIdArecuperer.Text = idArecuperer;
            });
     
            base.OnLoad(e);
        }
    Mais c'est en gros le même principe que : création évènement/abonnement à l'évènement.

    Le truc event Action, c'est apparu en C# 3.5 ou 4 c'est bien ça ?



    Merci de votre aide.

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

Discussions similaires

  1. Plusieurs boutons dans un formulaire HTML lié à une servlet
    Par khaled_prg dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/12/2013, 16h08
  2. Réponses: 1
    Dernier message: 05/04/2013, 15h20
  3. Réponses: 1
    Dernier message: 06/02/2013, 17h13
  4. Réponses: 0
    Dernier message: 03/11/2009, 20h58
  5. Réponses: 1
    Dernier message: 15/05/2006, 18h43

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