将ASP.NET控件添加到Sharepoint Web部件

时间:2009-06-12 08:10:32

标签: asp.net sharepoint web-parts

我想动态地将ASP.NET LinkBut​​ton添加到我的SharePoint Web部件。我正在使用事件处理程序挂起LinkBut​​ton,但是当我执行代码时,似乎事件永远不会被触发。

我应该在生命周期(哪个事件)中添加这样的控件以及如何添加?

感谢。

3 个答案:

答案 0 :(得分:3)

将其添加到webpart中的CreateChildControls()事件中,如:

protected override void CreateChildControls()
{      
    LinkButton linkbutton = new LinkButton();
    linkbutton.Click += ClickButton;
    this.Controls.Add(linkbutton);

}

protected void ClickButton(object sender, EventArgs e)
{
    // handle event
}

答案 1 :(得分:2)

如果需要让控件触发服务器事件,则需要在Page_Init或Page_Load生命周期中注册控件以触发事件。如果你在PreRender阶段添加控件那么就要迟到了。或者覆盖CreateChildControls()方法并在该方法中添加控件。

您不需要做任何特殊的事情来添加控件,只需:     

    var linkButton = new LinkButton();
    // register event
    Controls.Add(linkButton);
    

答案 2 :(得分:0)

我遇到了同样的问题。通过在CreateChildControls中添加LinkBut​​ton并显式设置ID然后使用INamingContainer接口装饰我的WebPart解决了我的问题。