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 :

Récuperer le click d'un bouton créer dynamiquement


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut Récuperer le click d'un bouton créer dynamiquement
    Bonjour,
    j'ai créer un userControl qui affiche une image ou une image Bouton suivant les cas. J'appelle ce controle dans un gridView. Quand il s'agit d'un bouton, je veux récupérer le click sur le bouton pour lancer une méthode de la page .ascx. Seulment pour le moment ca ne fonctionne pas : en fait si je mets le code dans la méthode Page_Load, les paramétre que je transmets au control sont null et si je le mets dans la méthode Pre-render, ils ne le sont pas mais le clck sur le bont ne fait qu'un reload. Voici mon 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
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using GCE.Framework.Contexte;
     
    public partial class ImageFeu : UserControl
    {
        #region Propriété
        private String _valeur = null;
        public String Valeur
        {
            get { return _valeur; }
            set { _valeur = value; }
        }
     
        private String _typeCtl = null;
        public String TypeCtl
        {
            get { return _typeCtl; }
            set { _typeCtl = value; }
        }
     
        private String _syntheseId = null;
        public String SyntheseId
        {
            get { return _syntheseId; }
            set { _syntheseId = value; }
        }
     
        public delegate void ClickEventHandler(object sender, ImageClickEventArgs e);
        public event ClickEventHandler Image_Clicked;  
     
        #endregion
     
        protected void Page_Load(object sender, EventArgs e) 
        {
     
        }
     
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (_valeur != "")
            {
                String _nomImg;
                switch (_valeur)
                {
                    case "0":
                        _nomImg = "EgalInactif";
                        break;
                    case "1":
                        _nomImg = "Vert";
                        break;
                    case "2":
                        _nomImg = "Orange";
                        break;
                    case "3":
                        _nomImg = "Rouge";
                        break;
                    default:
                        _nomImg = "";
                        break;
                }
                Response.Write("-->" + _valeur);
                if (_typeCtl == null)
                {
                    Image _imgFeu = new Image();
                    _imgFeu.Width = 15;
                    _imgFeu.Height = 15;
                    _imgFeu.ImageUrl = "~/_FrameworkUI/_Images/Defaut/puceSmiley" + _nomImg + ".png";
                    phImageFeu.Controls.Add(_imgFeu);
                }
                else
                {
                    ImageButton _imgFeu = new ImageButton();
                    _imgFeu.Width = 15;
                    _imgFeu.Height = 15;
                    _imgFeu.ID = "btRedirect";
                    _imgFeu.ImageUrl = "~/_FrameworkUI/_Images/flecheSmiley" + _nomImg + ".png";
                    _imgFeu.Style.Add(HtmlTextWriterStyle.Cursor, "Hand");
                    //_imgFeu.PostBackUrl = "SyntheseDetail.aspx?Id=" + _syntheseId + "&Type=" + _typeCtl;
                    //_imgFeu.Command += new CommandEventHandler(Image_Command);
                    _imgFeu.Click += new ImageClickEventHandler(_imgFeu_Click);
                    phImageFeu.Controls.Add(_imgFeu);
                }
            }
        }
     
        protected void _imgFeu_Click(object sender, ImageClickEventArgs e)
        {
            if (Image_Clicked != null)
            {
                Image_Clicked(this, e);
            }
        }
     
        //protected void Image_Command(object sender, CommandEventArgs e)
        //{
        //    if (Image_Clicked != null)
        //    {
        //        Image_Clicked(this, e);
        //    }
        //}
     
    }
    Merci d'avance pour votre aide

  2. #2
    Membre éclairé Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Par défaut
    My 2cents :

    Ton datagrid crée des objets à la volée, c'est lui qui va gérer l'ensemble des evênements liés aux contrôles qu'il contient. C'est via DataGrid1.OnItemCommand que tu peux intercepter tout ce qui est émis à partir des éléments enfants (dans ton cas, l'usercontrol).

    Je dis cela en ayant ma connaissance de .net 1.1, avec 2.0 cela a peut être changé, mais en jetant un coup d'oeil à msdn, j'ai vu que la méthode existait toujours.

  3. #3
    Membre confirmé Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    merci pour cette réponse mais quand je clique sur mon image il ne détecte pas qu'il y a une commande derrière ....

Discussions similaires

  1. MFC : comment créer dynamiquement des boutons?
    Par olator dans le forum Mobiles
    Réponses: 0
    Dernier message: 23/10/2008, 19h05
  2. Récuperer la valeur d'un bouton radio dont la liste est dynamique
    Par PAYASS59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/07/2007, 13h34
  3. Récuperer coté serveur la valeur de champs créer dynamiquement en javascript
    Par julien.le.cool dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 05/01/2007, 09h25
  4. Réponses: 16
    Dernier message: 06/08/2006, 23h45
  5. [VB.Net] Comment créer dynamiquement un contrôle bouton ?
    Par robert.michel9 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/01/2006, 13h49

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