关于“找到多个具有相同 ID“_header”的控件。FindControl 要求控件具有唯一的 ID”问题的解决
“找到多个具有相同 ID“_header”的控件。FindControl 要求控件具有唯一的 ID。”这个问题估计困扰了不少ASP.NET的初学者,其实解决它并不难。下面这段代码没有错,但是运行时会出现上诉问题。为什么?
foreach (JobDirection jd in directionList)
{
AccordionPane ap = new AccordionPane();
Label lblCtegoryMenu = new Label();
lblCtegoryMenu.Text = jd.JobDeriction;
ap.HeaderContainer.Controls.Add(lblCtegoryMenu);
Accordion1.Panes.Add(ap);
}
这是因为在 AccordionPane 中,如果不指定ID,它会自动的加上默认ID,但是这个ID不会随着FOREACH的进行而进行自动更改
所以,就会出现ID重复的现象。以下是改进后的代码:
foreach (JobDirection jd in directionList)
{
AccordionPane ap = new AccordionPane();
Label lblCtegoryMenu = new Label();
lblCtegoryMenu.Text = jd.JobDeriction;
ap.ID = Convert.ToString(jd.JobDerictionId); //关键就在这句,手动的指定ID,就不会报错了
ap.HeaderContainer.Controls.Add(lblCtegoryMenu);
Accordion1.Panes.Add(ap);
} --------------------编程问答-------------------- 楼主帮人解惑?
支持 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 自问自答 --------------------编程问答--------------------
. --------------------编程问答-------------------- O(∩_∩)O~
补充:.NET技术 , ASP.NET