2013-04-30 2 views
0

Я попытался создать пользовательскую кнопку изображения, используя следующий код, но, тем не менее, я не могу сделать это при щелчке по клику. Пожалуйста, может кто-нибудь мне помочь?Пользовательская кнопка изображения

DefaultProperty("Text"), 
ToolboxData("<{0}:CustomButton runat=\"server\"> </{0}:CustomButton>") 
] 
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] 

public class CustomButton : Button 
{ 
    private string imgURL; 

    #region Constructor 
    public CustomButton() { } 
    #endregion 

    #region Properties 
    [Bindable(true)] 
    [Category("Appearance")] 
    [Description("ShowImage")] 
    [DefaultValue(false)] 
    public bool ShowImage { get; set; } 


    [DefaultValue("")] 
    [Browsable(true)] 

    [UrlProperty] 
    public string ImageUrl 
    { 
     get 
     { 
      return imgURL; 
     } 
     set 
     { 
      imgURL = value; 
     } 
    } 
    #endregion 

    #region Override 
    protected override void Render(HtmlTextWriter writer) 
    { 


     writer.AddAttribute(HtmlTextWriterAttribute.Id, String.Format("tbl{0}", this.ID)); 
     writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0"); 
     writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0"); 
     writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); 
     writer.AddAttribute(HtmlTextWriterAttribute.Class, "imgBtnWrapperStd"); 
     if (!this.Enabled) 
      writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "disabled"); 
     writer.RenderBeginTag(HtmlTextWriterTag.Div); 


     writer.AddAttribute(HtmlTextWriterAttribute.Class, "btnContainer"); 
     writer.RenderBeginTag(HtmlTextWriterTag.Div); 
     if (this.ShowImage) 
     { 

      writer.AddAttribute(HtmlTextWriterAttribute.Src, ResolveClientUrl(this.ImageUrl)); 
      writer.AddAttribute(HtmlTextWriterAttribute.Align, "absMiddle"); 
      writer.RenderBeginTag(HtmlTextWriterTag.Img); 
      writer.RenderEndTag(); 
     } 
     writer.AddAttribute(HtmlTextWriterAttribute.Class, "imgBtnStd"); 
     base.Render(writer); 
     writer.RenderEndTag(); 
     writer.RenderEndTag(); 



    } 
    protected override void OnPreRender(EventArgs e) 
    { 
     base.OnPreRender(e); 

    } 
    #endregion 
} 

}

Мне нужно стрелять событие нажатия кнопки, когда щелчок по изображению также

ответ

0

При создании кнопки динамически в коде позади, вам нужно иметь кнопку инициализируется в вашем Событие Page_Load или Page_Init. Включение одного из этих событий не приведет к тому, что событие Click не срабатывает.

protected void Page_Init(object sender, EventArgs e) 
{ 
    CustomButton btn = new CustomButton(); 
    btn.Click += new EventHandler(yourButton_Click); 

    Controls.Add(btn); 
} 
+0

я добавил обработчик события его отлично работает, когда нажать на <= типа входного класса "imgBtnStd" = "отправить" Name = "БТН" значение = "пользовательский" ID = "BTN" /> но это не огонь, когда я нажимаю на изображение – Wella

Смежные вопросы