C# 添加<;ul>&书信电报;李>;aspx中来自代码隐藏的列表
我试图在代码隐藏中嵌套C# 添加<;ul>&书信电报;李>;aspx中来自代码隐藏的列表,c#,html,asp.net,C#,Html,Asp.net,我试图在代码隐藏中嵌套ul&li标记。 为此,我在.aspx页面中编写了初级代码 <ul class="dropdown" runat="server" id="tabs"> </ul> 当我运行我的项目并检查菜单上的元素时,我会看到如下内容 <ul id="ctl00_tabs" class="dropdown"> <li class=""> <a href="#">Master</a>
ul
&li
标记。
为此,我在.aspx
页面中编写了初级代码
<ul class="dropdown" runat="server" id="tabs"> </ul>
当我运行我的项目并检查菜单上的元素时,我会看到如下内容
<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>
这里的问题是,您正在向锚点添加多个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);
}
}
你看到你在哪里调用了
li.Controls.Add(anchor)
?您没有在任何地方调用li.Controls.Add(ul)
,因此您创建的ul
s实际上不会添加到页面上的任何位置。您可以通过以下方法使用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";
HtmlGenericControl li=新的HtmlGenericControl(“li”);
反馈表.控件.添加(li);
HtmlGenericControl锚=新的HtmlGenericControl(“a”);
Add(“href”,“aboutme.aspx”);
anchor.InnerText=“制表符文本”;
有关更多信息,请访问此链接:您可以尝试以下代码:
aspx:
所以。。。。问题是什么?使用当前的c代码,我无法在其各自的列表标题中添加li元素。列表标题是我的DataTable的ModuleGroup列。更常见的做法是使用数据绑定控件(如Repeater
)生成这样的标记。将Repeater控件添加到您的aspx页面,并将其绑定到您的数据表
。你可以通过谷歌搜索,比如说“Repeater ul”,找到更多的信息和样本。我有一个类似的问题,并尝试采用本页提到的解决方案。但是,我在尝试访问“tabs.something”时遇到空引用异常。我是否也需要为“ul标签”初始化对象?您仍然没有明白我的问题。。上面的代码如何根据我的DataTable列“ModuleName”
生成嵌套的ul
和li
标记,他在哪里添加了多个href
属性?在循环中,他在做foreach()anchor.attributes.Add
@SagarDumbre:正如其他地方所指出的,您从未实际将内部UL添加到li
元素的子控件集合中在第二个循环中,因为它是内部ul
并且外部ul
在我的aspx页面中使用id=tabs
进行硬编码。是的,您正在将内部列表项添加到内部列表中,但您根本没有将内部列表项添加到外部列表项中。确定。调用li.Controls.Add(锚定)
后,调用li.Controls.Add(ul)
。
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);
}
}
<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";