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