【发布时间】:2013-05-28 05:22:39
【问题描述】:
我正在尝试在后面的代码中创建嵌套的 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>
没有在li 内创建嵌套的ul 标记??为什么?
例如:-
<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>
【问题讨论】:
-
那么....有什么问题?
-
使用我当前的 c# 代码我无法在其各自的列表标题中添加 li 元素
-
列表标题是我的 DataTable 的 ModuleGroup 列
-
使用
Repeater等数据绑定控件生成这样的标记更为常见。将Repeater 控件添加到您的aspx 页面并将其绑定到您的DataTable。您可以通过谷歌搜索找到更多信息和示例,例如“Repeater ul”。 -
我遇到了类似的问题,并尝试使用此页面上提到的解决方案。但是,我在尝试访问“tabs.something”时遇到空引用异常。我还需要为“ul tabs”初始化一个对象吗?