C# 单击事件isn';使用自定义按钮控件时未激发

C# 单击事件isn';使用自定义按钮控件时未激发,c#,events,click,custom-controls,C#,Events,Click,Custom Controls,我制作了自定义按钮控件,但我缺少了一些东西,因为我无法使它正常工作 如果“渲染方法”如下所示,则按钮将工作: protected override void Render(HtmlTextWriter writer) { base.Render(writer); } 但当我将代码更改为: protected override void Render(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriter

我制作了自定义按钮控件,但我缺少了一些东西,因为我无法使它正常工作

如果“渲染方法”如下所示,则按钮将工作:

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

现在它有两个相邻的按钮。第二个很好用(我认为base.render(writer)可以做到这一点),但第一个不行,这就是用css制作的正确布局。我刚刚意识到也许我需要用LinkButton来实现这一点,因为它允许自动添加子控件。