【发布时间】:2010-09-12 11:26:35
【问题描述】:
我有一个加载自定义用户控件的 Sharepoint WebPart。用户控件包含一个Repeater,而Repeater 又包含几个LinkButtons。
在 Webpart 的 RenderContent 调用中,我有一些代码来添加事件处理程序:
ArrayList nextPages = new ArrayList();
//populate nextPages ....
AfterPageRepeater.DataSource = nextPages;
AfterPageRepeater.DataBind();
foreach (Control oRepeaterControl in AfterPageRepeater.Controls)
{
if (oRepeaterControl is RepeaterItem)
{
if (oRepeaterControl.HasControls())
{
foreach (Control oControl in oRepeaterControl.Controls)
{
if (oControl is LinkButton)
{
((LinkButton)oControl).Click += new EventHandler(PageNavigateButton_Click);
}
}
}
}
}
然而,PageNavigateButton_Click 函数永远不会被调用。但是,我可以看到它被添加为调试器中的事件处理程序。
有什么想法吗?我很难过如何做到这一点。
【问题讨论】:
-
在阅读了人们的建议后,我对代码进行了一些修改。我现在正在尝试在 CreateChildControls() 函数中添加事件处理程序,但它们仍然没有被触发。感谢您迄今为止的所有帮助,不胜感激
-
对于那些在游戏后期看到这一点的人。不要使用 CreateChildControls ......这在周期中仍然为时已晚。而是重写 OnInit 处理程序以构建所有动态控件。
标签: c# asp.net sharepoint web-parts