WebControl中的按钮事件未触发

本文关键字:事件 按钮 WebControl | 更新日期: 2023-09-27 18:18:15

我正在尝试创建一个来自WebControl的"服务器控件"。这需要完全在c#中完成,以便可以将其编译成.dll。我对用。ascx文件创建用户控件不感兴趣(我实际上已经有一个"用户控件",但我想将它添加到库中,所以我正在转换它)。

我的控件现在非常简单,我无法让按钮事件触发:

public class ButtonWrapper : WebControl
{
    protected Button button;
    public event EventHandler<Events.GenericEventArgs<Tuple<int, string>>> ButtonClicked;
    public void Button_Click(object o, EventArgs e)
    {
       ButtonClicked(this, new Tuple<int,string)(0, "abc"));
    }
    public void WHERE_DO_I_PUT_THIS_CODE()
    {
        button = new Button()
        {
          ID = "button",
          Text = "Button"
        };
        button.Click += new EventHandler(Button_Click);
    }
}

我需要在哪里"创建"按钮?我目前有一个重载CreateChildControls():

protected override void CreateChildControls()
{
    this.Controls.Clear();
    button = new Button()
    {
          ID = "button",
          Text = "Button"
    };
    button.Click += new EventHandler(Button_Click);
    this.Controls.Add(button);
    this.ChildControlsCreated = true;
 }

控件加载得很好,但是当我单击按钮时,页面只是刷新,事件从未触发。我想让ButtonWrapper中的按钮触发,以便父页面可以侦听。我想我已经很接近了,但是我错过了一些简单的东西。

编辑:我不太有正确的事件变量类型为EventArgs传递,这样当我简化这个问题的问题

WebControl中的按钮事件未触发

我创造了新的解决方案并尝试了它。你可以从这个链接下载:http://dosya.co/download.php?id=51BACA121我在上班,大部分上传网站都被屏蔽了。所以我不能上传另一个网站。