按钮事件不在WebControl中触发

时间:2013-06-14 05:32:35

标签: c# asp.net-4.0

我正在尝试创建一个源自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传递正确的事件变量类型,当我简化这个问题的问题时。

1 个答案:

答案 0 :(得分:0)

我创建了新的解决方案,我试了一下。 您可以从以下链接下载:http://dosya.co/download.php?id=51BACA121 我在工作,大多数上传网站被阻止。所以我无法上传其他网站。如果你无法下载我可以尝试找到不同的上传网站。