当前位置:编程学习 > C#/ASP.NET >>

关于“找到多个具有相同 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);
            } --------------------编程问答-------------------- 楼主帮人解惑?
支持 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 自问自答 --------------------编程问答--------------------
引用 5 楼 fkago 的回复:
自问自答

. --------------------编程问答-------------------- O(∩_∩)O~
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,