点击事件不会触发

时间:2012-10-12 10:47:31

标签: c# asp.net sharepoint web-parts

我有一个可视化的web部分,用于sharepoint,代码如下,但点击处理程序的代码永远不会被触发。我的代码出了什么问题?:

protected Button btApply;
protected void Page_Load(object sender, EventArgs e)
{
    ... some code ...
    btApply = new Button();
    btApply.Text = "Apply";
    btApply.CssClass += "InputControl";
    btApply.Click += new EventHandler(btApplyClick);
    this.Controls.Add(btApply);
    ... some code ...
}

protected void btApplyClick(object sender, EventArgs e)
{
    ... some code ...
}

1 个答案:

答案 0 :(得分:1)

如果要动态创建控件,则必须在Page_PreInit中创建控件。来自MCTS Self-Paced Training Kit (Exam 70-515): Web Applications Development with Microsoft .NET Framework 4的引用,第106页:

  

您可以通过处理来在运行时向窗体添加控件   Page.PreInit事件(如果您不使用母版页)或   Page.Init事件(如果您正在使用母版页而您正在添加   控制到内容页面)

MSDN“ASP.NET Page Life Cycle Overview”文章中解释了页面(以及Web部件,用户控件等)生命周期。

另外,请参阅非常相似的问题Event for Dynamically created Controls in ASP.Net

因此,只需将您的控件创建和事件连接移至Page_PreInit,您就可以了。