Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加<;ul>&书信电报;李>;aspx中来自代码隐藏的列表_C#_Html_Asp.net - Fatal编程技术网

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";