以编程方式添加到listitem的超链接

时间:2011-11-03 16:05:07

标签: c# asp.net html

我希望以编程方式提供以下HTML:

<ul><li><a href="#"></a></li></ul>

我可以将<li>添加到<ul>。但<a><li>是不可能的。

我的代码:

    BulletedList ul = new BulletedList();    
    ListItem li = new ListItem();    
    HyperLink hl = new HyperLink();
    ul.Items.Add(li);
    // li has no property Controls or Items

3 个答案:

答案 0 :(得分:13)

BulletedList, how to set link in ListItem开始,使用DisplayMode Property

<asp:BulletedList ID="BulletedList6" runat="Server" DisplayMode="HyperLink">
    <asp:ListItem Text="Los Angeles" Value="http://www.Los Angeles.aspx"></asp:ListItem>
    <asp:ListItem Text="Atlanta" Value="http://wwwAtlanta.aspx"></asp:ListItem>
    <asp:ListItem Text="San Francisco" Value="http://www.San Francisco.aspx"></asp:ListItem>
</asp:BulletedList>

或者在您的代码中:

BulletedList ul = new BulletedList();
ul.DisplayMode = BulletedListDisplayMode.HyperLink;
ListItem li = new ListItem();
ul.Items.Add(li);

答案 1 :(得分:5)

试试这种方式

asp:Literal

中放置.aspx
<asp:Literal ID="ltrInfo" runat="server"></asp:Literal>

并在后端代码中

  ltrInfo.Text = "<ul>";
  ltrInfo.Text += "<li><a href='page1.aspx'>Link one</a></li>";
  ltrInfo.Text += "<li><a href='page2.aspx'>Link Two </a></li>";
  ltrInfo.Text += "</ul>";

答案 2 :(得分:1)

您的列表项'li'具有'Text'和'Value'的属性。

您需要手动创建链接,类似于以下内容:

string link = "<a href=\"#\">link text</a>";

并将ListItem的'Text'设置为字符串。

如果您经常这样做,可能值得创建一个继承自ListItem的新类,该类在其构造函数(url和text)中接受两个参数,并自动创建链接。

编辑:如另一个答案所示,您可能还想使用BulletedList类的'Hyperlink'的DisplayMode。如果采用此路线,则可以使用ListItem的“值”属性指定链接应该转到的URL,并使用“文本”属性指定链接文本。