2011-08-26 67 views
0

我已經制作了自定義按鈕控件,但我錯過了一些東西,因爲我無法正常工作。使用自定義按鈕控件時,點擊事件未被觸發

按鈕工作,如果渲染的方法是這樣的:

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(寫)呢?還有這些自定義控制按鈕還有什麼應該做什麼,或者我可以做得更好?

按鈕輸出應該是這樣的:

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

回答

1

你應該調用基方法...

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); 
     } 
+0

現在它兩個按鈕旁邊彼此。第二個工作正常(我認爲base.render(作家)是這樣做的),但第一個不是,那是用css製作的正確佈局。我只是意識到,也許我需要使用LinkBut​​ton來做到這一點,因爲它允許自動添加子控件。 – Hasanen

相關問題