2010-12-16 109 views
1

获取上述错误。 我想手风琴的ID是唯一的,每次它必然。我加了手风琴窗格动态在我code..Its不工作: -错误帮助::找到具有相同ID'ctl00'的多个控件。 FindControl需要控件具有唯一的ID

这样的: -

for(int i=0;i< dt.Rows.Count;i++) 
{  

AccordionPane accp = new AccordionPane(); 
accp.ID = "accp" + i.ToString(); 
Accordion1.Panes.Add(accp); 
Accordion1.DataSource = dt.DefaultView; 
Accordion1.DataBind(); 
} 

我想要的手风琴的ID是唯一的。我怎样才能完成我想要的?

aspx页面: -

<div id="div1" runat="server"> 
     <telerik:RadTabStrip ID="RadTabStrip1" runat="server" MultiPageID="RadMultiPage1" OnTabClick="RadTabStrip1_OnTabClick" ClickSelectedTab="true"> 
     </telerik:RadTabStrip> 
<br /><br /> 
     <telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0"> 

     </telerik:RadMultiPage> 

    </div> 

      <cc1:Accordion ID="Accordion1" runat="server" FadeTransitions="true" Visible="true" AutoSize="None" 
       SelectedIndex="0" RequireOpenedPane="false" TransitionDuration="250" HeaderCssClass="accordionHeader" ContentCssClass="accordionContent" CssClass="toggler"> 
       <HeaderTemplate> 

        <b style="color: Black"> 

         <%#Eval("Ques")%> 
        </b> 

       </HeaderTemplate> 


       <ContentTemplate> 
       <p> <%#DataBinder.Eval(Container.DataItem, "QuesAns")%></p> 

       </ContentTemplate> 
      </cc1:Accordion> 
      <br /> 

回答

2

你不应该叫BindAccordion多次,因为(我猜),这就是为什么你用相同的ID多个控件结束了。

你在这两个Page_LoadRadTabStrip1_OnTabClick调用它。从你的代码我最好的猜测是,你应该只从Page_Load一次调用它时!IsPostBack像你已经有。

如果还是不行,请尝试以下操作:

protected void BindTabStrip() 
{ 
    DataSet ds = GetDataSetForTabs(); 
    RadTabStrip1.AppendDataBoundItems = true; 
    RadTabStrip1.DataSource = ds; 
    RadTabStrip1.DataTextField = "QuesType"; 
    RadTabStrip1.DataValueField = "QuesTypeID"; 
    RadTabStrip1.DataBind(); 

    // Remove it accordian from the page before adding it to 
    // a new ControlCollection 
    Page.Controls.Remove(Accordian1); 

    RadPageView pv = new RadPageView(); 
    pv.Controls.Add(Accordion1); 

    RadMultiPage1.PageViews.Add(pv); 
} 
+0

如果我不叫BindAccordian在OnTabClick方法,然后当我点击标签,没有手风琴呈现在页面上。我试过你的代码..不工作。每次点击标签时,如何为每个手机生成唯一ID? – Serenity 2010-12-16 10:47:08

+0

@Serenity - 这一切都看起来像一个代码味道,我反正,但是这是你的特权。无论如何,这是讨厌的,但你可能只是这样做:'accp.ID = “ACCP” + Guid.NewGuid()的ToString();'。如果这不能解决问题,那么问题就在别的地方。如果它确实解决了这个问题,那么这不是一个理想的解决方案。 – GenericTypeTea 2010-12-16 10:58:06

相关问题