我想动态地将ASP.NET LinkButton添加到我的SharePoint Web部件。我正在使用事件处理程序挂起LinkButton,但是当我执行代码时,似乎事件永远不会被触发。
我应该在生命周期(哪个事件)中添加这样的控件以及如何添加?
感谢。
答案 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中添加LinkButton并显式设置ID然后使用INamingContainer接口装饰我的WebPart解决了我的问题。