我有一个带有LinkButton的自定义控件。单击LinkButton时,其单击事件不会触发。
[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);
}
}
我只提取了负责渲染LinkButton及其事件的代码(上面包含的内容),以便删除所有其他因素。
知道为什么事件没有解雇?我错过了什么吗?
答案 0 :(得分:1)
这主要是因为控件在页面生命周期中创建得太迟了。根据{{3}},您需要在PreInit中创建任何动态控件,而不是在CreateChildControls中创建。如果您正在开发自定义控件,则需要在Init覆盖中创建所有动态控件,并将事件连接到那里。
希望这有帮助! :)