Я обнаружил, в чем проблема, в основном это то, что InnerText «anTab» не может совпадать с атрибутом href «anTab», так как это вызывает путаницу и приводит к тому, что содержимое всех вкладок появляется только в первой (выбранная) вкладка, а остальные вкладки не работают.
Например, следующий код работает правильно, так как InnerText «anTab» равен «Tab 1», а href ищет элемент управления с идентификатором «Tab1», который является идентификатором панели.
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);
Ниже мы видим, что InnerText «anTab» совпадает с href и идентификатором панели, которую мы хотим использовать в качестве вкладки, это вызывает путаницу, так как 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);