簡體   English   中英

使用自定義按鈕控件時不會觸發Click事件

[英]Click event isn't fired when using custom button control

我已經完成了自定義按鈕控件的操作,但是由於無法正常工作,我錯過了一些東西。

如果render方法是這樣,則按鈕起作用:

protected override void Render(HtmlTextWriter writer)
{
  base.Render(writer);
}

但是當我將代碼更改為此:

protected override void Render(HtmlTextWriter writer)
    {
        writer.AddAttribute(HtmlTextWriterAttribute.Class, css);
        writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID);
        writer.AddAttribute(HtmlTextWriterAttribute.Name, this.ID);
        writer.RenderBeginTag(HtmlTextWriterTag.Button);
        writer.RenderBeginTag(HtmlTextWriterTag.Span);
        writer.RenderBeginTag(HtmlTextWriterTag.Span);
        writer.RenderBeginTag(HtmlTextWriterTag.Span);
        writer.Write(base.Text);
        writer.RenderEndTag();
        writer.RenderEndTag();
        writer.RenderEndTag();
        writer.RenderEndTag();
    }

它只會加載單擊按鈕的同一頁面,而不會發生其他任何事情。

那我沒有做什么base.Render(write)呢? 在這些自定義控件按鈕中還有什么應該做的或者我可以做得更好嗎?

按鈕輸出應類似於:

<button>
  <span>
    <span>
      <span>
        Title
      </span>
    </span>
  </span>
</button>

您應該調用基本方法...

base.Render(writer);

像下面↓

  protected override void Render(HtmlTextWriter writer)
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Class, css);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, this.ID);
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.Write(base.Text);
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();

       base.Render(writer);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM