Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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# WebForms中的选项卡_C#_Asp.net_Html_Webforms_Tabs - Fatal编程技术网

C# WebForms中的选项卡

C# WebForms中的选项卡,c#,asp.net,html,webforms,tabs,C#,Asp.net,Html,Webforms,Tabs,我试图在运行时创建一组选项卡,它们在一段时间内工作正常-但是现在它们似乎只是在先前渲染的选项卡下显示所有选项卡的内容。虽然看起来很傻,但据我所知,在代码方面,自代码运行以来没有任何变化,所以我对正在发生的事情感到有点困惑 在本例中,我将不使用循环,尽管这似乎无关紧要,因为循环似乎不是问题所在 <asp:Panel runat="server" ID="pnlTabs"> <ul runat="server" id="ulSections" /> </asp:

我试图在运行时创建一组选项卡,它们在一段时间内工作正常-但是现在它们似乎只是在先前渲染的选项卡下显示所有选项卡的内容。虽然看起来很傻,但据我所知,在代码方面,自代码运行以来没有任何变化,所以我对正在发生的事情感到有点困惑

在本例中,我将不使用循环,尽管这似乎无关紧要,因为循环似乎不是问题所在

<asp:Panel runat="server" ID="pnlTabs">
    <ul runat="server" id="ulSections" />
</asp:Panel>
我将我的控件和其他控件放在“pnl”上。谁能告诉我我的错误是什么吗?

//这增加了
  • //THIS ADDS THE <A> to the <LI>
    liTab.Controls.Add(anTab);
    
    //THIS ADDS THE <LI> to the <UL>
    ulSections.Controls.Add(liTab);
    
    //THIS CODE Appear to have nothing to do with anything.
    var pnl = new Panel();
    pnl.ID = Tab1;
    pnlTabs.Controls.Add(pnl);
    
    liTab.Controls.Add(anTab); //这将
  • 添加到
      ulSections.Controls.Add(liTab); //这段代码似乎与任何事情都无关。 var pnl=新面板(); pnl.ID=Tab1; pnlTabs.Controls.Add(pnl);
  • 当您查看源代码时,是否可以确认HTML是否在HTML中呈现


    这个代码在你的代码后面的什么地方。。。通过点击按钮、页面加载、Init?

    我发现了问题所在,基本上是“anTab”的InnerText不能与“anTab”的href属性相同,因为这会导致混淆,并导致所有选项卡的内容只出现在第一个(选定)选项卡中,而其余选项卡不起作用

    例如,以下代码工作正常,因为“anTab”的内部文本是“Tab 1”,href正在查找ID为“Tab1”的控件,该ID是面板的ID

    HtmlGenericControl liTab = new HtmlGenericControl("li");                        
    HtmlGenericControl anTab = new HtmlGenericControl("a");
    anTab.Attributes.Add("href", "#Tab1");
    anTab.InnerText = "Tab 1";
    liTab.Controls.Add(anTab);
    ulSections.Controls.Add(liTab);
    
    var pnl = new Panel();
    pnl.ID = "Tab1";
    pnlTabs.Controls.Add(pnl);
    
    下面我们可以看到,“anTab”的内部文本与href和我们希望用作选项卡的面板ID相同,这导致了混淆,因为href现在假设您希望“选项卡单击”指向自身而不是实际的面板

    HtmlGenericControl liTab = new HtmlGenericControl("li");                        
    HtmlGenericControl anTab = new HtmlGenericControl("a");
    anTab.Attributes.Add("href", "#Tab1");
    anTab.InnerText = "Tab1";
    liTab.Controls.Add(anTab);
    ulSections.Controls.Add(liTab);
    
    var pnl = new Panel();
    pnl.ID = "Tab1";
    pnlTabs.Controls.Add(pnl);
    

    这很可能是一个css问题-这已经改变了吗?我已经检查了源代码,据我所知css没有改变。这似乎是合乎逻辑的,因为上面的代码是工作的CSS,现在不是,但我不能告诉什么可能已经改变,如果是这样,如何修复它。谢谢你的回应。是的,当然,HTML正在被呈现(并且在我看来是正确的),而后面的代码在页面加载中。“pnl”是我放置选项卡内容的地方,如文本框等。我还注意到,当我单击未选中的选项卡时,URL中开始出现“#”,这在以前也没有发生过。
    HtmlGenericControl liTab = new HtmlGenericControl("li");                        
    HtmlGenericControl anTab = new HtmlGenericControl("a");
    anTab.Attributes.Add("href", "#Tab1");
    anTab.InnerText = "Tab1";
    liTab.Controls.Add(anTab);
    ulSections.Controls.Add(liTab);
    
    var pnl = new Panel();
    pnl.ID = "Tab1";
    pnlTabs.Controls.Add(pnl);