Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误帮助::具有相同ID的多个控件';ctl00';被发现了。FindControl要求控件具有唯一的ID_C#_Asp.net - Fatal编程技术网

C# 错误帮助::具有相同ID的多个控件';ctl00';被发现了。FindControl要求控件具有唯一的ID

C# 错误帮助::具有相同ID的多个控件';ctl00';被发现了。FindControl要求控件具有唯一的ID,c#,asp.net,C#,Asp.net,获取上述错误。 我希望手风琴的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; Ac

获取上述错误。 我希望手风琴的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();
}
for(int i=0;i
我希望手风琴的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 />





您不应该多次调用
BindAccordion
,因为(我猜)这就是为什么您最终会得到具有相同ID的多个控件

您在
Page\u Load
RadTabStrip1\u OnTabClick
中调用它。我从你的代码中猜到的最好的结果是,当
时,你应该只从
Page\u Load
调用它一次!iPostback
就像您已经做过的那样

如果不起作用,请尝试以下操作:

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);
}

如果我在OnTabClick方法中不调用BindAccordian,那么当我单击选项卡时,页面上不会呈现任何accordian。我试过你的密码…没用。我如何在每次点击一个标签时为手风琴生成唯一的ID???@Serenity-这一切对我来说都像是一种代码味道,但这是你的特权。无论如何,这很糟糕,但您可以这样做:
accp.ID=“accp”+Guid.NewGuid().ToString()。如果这不能解决问题,那么问题就出在其他地方。如果它确实解决了问题,那么从长远来看,它不是一个理想的解决方案。