Вкладки в веб-формах - PullRequest
       3

Вкладки в веб-формах

0 голосов
/ 14 февраля 2012

Я пытаюсь создать набор вкладок во время выполнения, и какое-то время они работали правильно, однако теперь они, кажется, просто отображают содержимое всех вкладок под ранее отображенной вкладкой. Как бы глупо это ни казалось, насколько я могу судить, с точки зрения кода ничего не изменилось с тех пор, как код работал, поэтому я немного запутался в том, что происходит ...

Для целей этого примера я не буду использовать цикл, хотя это кажется независимым, поскольку цикл не является проблемой.

<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". Может кто-нибудь сказать мне, в чем моя ошибка?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Я обнаружил, в чем проблема, в основном это то, что 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);
0 голосов
/ 14 февраля 2012
//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 при просмотре исходного кода.

Где в вашем коде находится этот код ... при нажатии кнопки, при загрузке страницы, при инициализации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...