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:
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