WebForms中的选项卡
本文关键字:选项 WebForms | 更新日期: 2023-09-27 18:24:40
我试图在运行时创建一组选项卡,它们曾经正确工作过一段时间,但现在它们似乎只是显示了以前渲染的选项卡下所有选项卡的内容。虽然看起来很傻,但据我所知,就代码而言,自代码工作以来,没有任何变化,所以我有点困惑到底发生了什么…
为了这个例子的目的,我不会使用循环,尽管这似乎无关紧要,因为循环似乎不是问题所在。
<asp:Panel runat="server" ID="pnlTabs">
<ul runat="server" id="ulSections" />
</asp:Panel>
我得出的结论是,我的代码一定有错,所以这里是C#:
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);
我把我的控制和什么没有放在"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);
当你查看源代码时,你能确认HTML是否在HTML中呈现吗。
这个代码在你的代码后面的什么地方。。。在按钮中单击,在页面加载,在初始化?
我发现了问题所在,基本上是"anTab"的InnerText不能与"anTab"的href属性相同,因为这会导致混乱,并导致所有选项卡的内容只显示在第一个(选定的)选项卡中,而其余选项卡则不起作用。
例如,以下代码工作正常,因为"anTab"的InnerText是"Tab 1",href正在查找ID为"Tab1"的控件,即面板的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"的InnerText与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);