2011-08-26 66 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

相关问题