“找到多个具有相同 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);
            }