2010-12-16 165 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

相關問題