自定义控件事件未触发

时间:2009-01-22 23:17:45

标签: c# events asp.net-3.5

我有一个带有LinkBut​​ton的自定义控件。单击LinkBut​​ton时,其单击事件不会触发。

[ToolboxData("<{0}:View runat=server></{0}:View>")]
public class View : Control
{
    private LinkButton lbNextPage;
    protected override void CreateChildControls()
    {
        lbNextPage = new LinkButton() { ID = "lbNextPage", Text = "Next Page" };

        lbNextPage.Click += delegate(object sender, EventArgs e)
        {
            Page.Response.Write("Event Fires!");
        };

        Controls.Add(lbNextPage);
    }
}

我只提取了负责渲染LinkBut​​ton及其事件的代码(上面包含的内容),以便删除所有其他因素。

知道为什么事件没有解雇?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

这主要是因为控件在页面生命周期中创建得太迟了。根据{{​​3}},您需要在PreInit中创建任何动态控件,而不是在CreateChildControls中创建。如果您正在开发自定义控件,则需要在Init覆盖中创建所有动态控件,并将事件连接到那里。

希望这有帮助! :)