从代码后面动态添加html列表项?

时间:2011-09-19 08:39:08

标签: c# asp.net list

以上是我的.aspx页面中的代码。 如何从dyanmically背后的代码中添加它?

<ul runat="server" id="1">
<li><a href="page.html">abc</a>
  <ul runat="server" id="2">
  <li><a href="pag2.htm">3</a></li>
  <li><a href="page3.htm">2</a></li>
  </ul>
</li>
</ul>

4 个答案:

答案 0 :(得分:0)

您必须使用“sidebarmenu1”控件的“InnerHtml”属性。

protected void Page_Load(object sender, EventArgs e)
        {
            this.loadHtml();
        }

因此,您可以生成每个列表项代码并将其添加到InnerHtml:

private loadHtml()
{
    this.sidebarmenu1.InnerHtml = GetListHtml().ToHtmlString();
}

这个GetListHtml的一个小例子:

public string GetListHtml()
        {
            StringBuilder htmlBuilder = new StringBuilder();

            htmlBuilder.AppendLine("<li><a href="#">Flat</a>");
            htmlBuilder.Append("<ul runat="server" id="sidebarmenu2">");
            htmlBuilder.AppendLine("<li><a href="#">Flat 1`enter code here`</a></li>");
            htmlBuilder.Append("<li><a href="#">Flat 2</a></li></ul>");
            return htmlBuilder.ToString();
        }

这个GetListHtml方法可以调用DAL或从任何其他地方加载数据...使用foreach加载每个项目......

答案 1 :(得分:0)

您可以采用此链接中给出的教程的类比: http://neimke.blogspot.com/2011/01/create-delicious-user-interface-for.html 它对我有用 - 它使用jquery使用下面的给定代码动态添加列表项..检查它pout ...

 <li id="tagInputListItem"><input class="tagInput" id="tagInput" /></li>

答案 2 :(得分:0)

您可以将PlaceHolder放在.aspx中并为其指定ID,然后在代码隐藏页面中使用该ID并向该占位符添加控件。 有关详细信息,请参阅here.

如果你真的确定“runat = server”属性可能这个帖子很有用(here

如果您需要澄清,请给我反馈。

答案 3 :(得分:0)

您可以使用ASP Literal从后端代码填充数据 例如。如果你有id ltrNavigation的文字

protected void Page_Load(object sender, EventArgs e)
{
       ltrNavigation.text = "";
        if (!IsPostBack)
        {
           ltrNavigation.text += "<ul id='sidebarmenu1'>";
           ltrNavigation.text += "<li><a href='#'>Flat</a></li>";
           ltrNavigation.text += "</ul>";
        }

}