我正在尝试制作嵌套ul
&代码后面的li
代码。
为此,我在我的.aspx
页面
<ul class="dropdown" runat="server" id="tabs"> </ul>
我的C#代码
DatTable dtOutput = Generix.getData("Get Some Data");
foreach (DataRow drOutput in dtOutput.Rows)
{
HtmlGenericControl li = new HtmlGenericControl("li");
tabs.Controls.Add(li);
HtmlGenericControl anchor = new HtmlGenericControl("a");
anchor.Attributes.Add("href", "#");
anchor.InnerText = Convert.ToString(drOutput["ModuleGroup"]);
li.Controls.Add(anchor);
HtmlGenericControl ul = new HtmlGenericControl("ul");
DatTable dtOutputList = Generix.getData("Get another set of Data");
foreach (DataRow drOutputList in dtOutputList.Rows)
{
HtmlGenericControl ili = new HtmlGenericControl("li");
ul.Controls.Add(ili);
HtmlGenericControl ianchor = new HtmlGenericControl("a");
foreach (DataColumn dcOutputList in dtOutputList.Columns)
{
ianchor.Attributes.Add("href", Convert.ToString(drOutputList["ModuleFileName"]));
}
ianchor.InnerText = Convert.ToString(drOutputList["ModuleName"]);
ili.Controls.Add(ianchor);
}
//tabs.Controls.Add(li);
}
当我运行我的项目并在我的菜单上检查元素时,我看到类似
的内容<ul id="ctl00_tabs" class="dropdown">
<li class="">
<a href="#">Master</a>
</li>
<li class="">
<a href="#">Cards Management</a>
</li>
<li class="">
<a href="#">Authorization</a>
</li>
<li class="">
<a href="#">Loyalty</a>
</li>
<li class="">
<a href="#">Reports</a>
</li>
</ul>
在ul
内没有创建嵌套的li
标签?为什么??
例如: -
<ul id="ctl00_tabs" class="dropdown">
<li class="">
<a href="#">Master</a>
<ul>
<li><a href="Some.aspx"><span>Some Name</span></a></li>
<li><a href="Some1.aspx"><span>Some Name 1</span></a></li>
</ul>
</li>
</ul>
答案 0 :(得分:5)
你看到你在哪里打电话li.Controls.Add(anchor)
?您没有在任何地方致电li.Controls.Add(ul)
,因此您创建的ul
实际上并未在页面的任何位置添加。
答案 1 :(得分:1)
您可以使用以下
中的c#代码将LI项目添加到UL项目<ul class="respond" id="feedbackTab" runat="server"></ul>
HtmlGenericControl li = new HtmlGenericControl("li");
feedbackTab.Controls.Add(li);
HtmlGenericControl anchor = new HtmlGenericControl("a");
anchor.Attributes.Add("href", "aboutme.aspx");
anchor.InnerText = "Tab Text";
有关详细信息,请访问此链接:http://www.sharepointsol.com/2014/09/dynamically-adding-li-to-ul.html
答案 2 :(得分:0)
这里的问题是您要向锚点添加多个Href属性。可能每次都会覆盖href。将您的代码更改为:
foreach (DataRow drOutput in dtOutput.Rows)
{
HtmlGenericControl li = new HtmlGenericControl("li");
tabs.Controls.Add(li); // tabs is id of ul tag which is runat=server
foreach (DataColumn dcOutput in dtOutput.Columns)
{
HtmlGenericControl anchor = new HtmlGenericControl("a");
anchor.Attributes.Add("href", Convert.ToString(drOutput["ModuleFileName"]));
anchor.InnerText = Convert.ToString(drOutput["ModuleName"]);
li.Controls.Add(anchor);
}
}
答案 3 :(得分:0)
您可以尝试以下代码:
ASPX:
<form id="form1" runat="server">
<div>
<asp:PlaceHolder ID="ControlContainer"
runat="server" />
</div>
</form>
CS:
HtmlGenericControl tabs = new HtmlGenericControl("ul");
tabs.ID = "myTopnav";
tabs.Attributes.Add("class", "topnav");
HtmlGenericControl li = new HtmlGenericControl("li");
HtmlGenericControl ianchor = new HtmlGenericControl("a");
li = new HtmlGenericControl("li");
ianchor = new HtmlGenericControl("a");
ianchor.ID = "Home";
ianchor.Attributes.Add("href", "#home");
ianchor.Attributes.Add("class", "active");
ianchor.InnerText = "Home";
li.Controls.Add(ianchor);
tabs.Controls.Add(li);
li = new HtmlGenericControl("li");
ianchor = new HtmlGenericControl("a");
ianchor.ID = "News";
ianchor.Attributes.Add("href", "#");
ianchor.InnerText = "News";
li.Controls.Add(ianchor);
tabs.Controls.Add(li);
ControlContainer.Controls.Add(tabs);