积极答复者
FindControl 要求控件具有唯一的 ID。

问题
-
使用Accordion动态生成菜单会出现如下错误;
找到多个具有相同 ID“_header”的控件。FindControl 要求控件具有唯一的 ID。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 找到多个具有相同 ID“_header”的控件。FindControl 要求控件具有唯一的 ID。
========================
代码:
protected void DisplayMenu()
{
IList<SysFun> sfParentNodes = SysFunManager.GetAllParentNodes();
foreach (SysFun parentNode in sfParentNodes)
{
AccordionPane ap = new AccordionPane();
Label lblParentMenu = new Label();
lblParentMenu.Text = parentNode.DisplayName;/
ap.HeaderContainer.Controls.Add(lblParentMenu);
int nodeId = parentNode.NodeId;
IList<SysFun> sfChildNodes = SysFunManager.GetChildNodesById(nodeId);
foreach (SysFun childNode in sfChildNodes)
{
Label lblChildMenu = new Label();
lblChildMenu.Text = "<br>" + childNode.DisplayName + "<br>";ap.ContentContainer.Controls.Add(lblChildMenu);
}
Accordion1.Panes.Add(ap);
}
}