2013-04-30 159 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” 类型= “提交” 名称= “BTN” VALUE = “定制” ID = “BTN”/> 但是当我点击图像时它不会触发 – Wella 2013-05-01 09:04:19