Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未调用自定义web控件中的按钮_C#_Asp.net - Fatal编程技术网

C# 未调用自定义web控件中的按钮

C# 未调用自定义web控件中的按钮,c#,asp.net,C#,Asp.net,我为ASP.NET WebForms编写自己的控件。只有一个按钮。单击时,标签需要显示文本“Hello World”。但这并没有发生。 单击按钮时,标签文本不会更改。 为什么? 我的控制: public class MyButton : Control, IPostBackEventHandler { protected override void Render(HtmlTextWriter writer) { writer.AddAttribute("type"

我为ASP.NET WebForms编写自己的控件。只有一个按钮。单击时,标签需要显示文本“Hello World”。但这并没有发生。 单击按钮时,标签文本不会更改。 为什么? 我的控制:

public class MyButton : Control, IPostBackEventHandler
{
    protected override void Render(HtmlTextWriter writer)
    {
        writer.AddAttribute("type", "submit");
        writer.AddAttribute("value", "ClickMe");
        writer.AddAttribute("name", "BtnChange");
        writer.RenderBeginTag(HtmlTextWriterTag.Input);
        writer.RenderEndTag();

        base.Render(writer);
    }

    public delegate void OnClickEventHandler(object sender, EventArgs args);

    public event OnClickEventHandler Click1;

    public void RaisePostBackEvent(string eventArgument)
    {
        Click1(this, new EventArgs());
    }
}
我的ASP页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestButton.aspx.cs" Inherits="Hello.TestButton" %>
<%@ Register assembly="Hello" namespace="Hello" tagPrefix="MyButton" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
  <body>
    <form id="form1" runat="server">
      <div>
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <br />
      <MyButton:MyButton runat="server" OnClick1="MyButton_OnClick"></MyButton:MyButton>
      </div>
    </form>
  </body>
</html>

您应该使用控件的UniqueID属性作为按钮的name属性。

因为没有调用
RaisePostBackEvent
在按钮上设置ID后是否尝试过?
namespace Hello
{
  public partial class TestButton : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void MyButton_OnClick(object sender, EventArgs args)
    {
        Label1.Text = "Hello World!";
    }
  }
}