C# 以编程方式将超链接添加到listitem
我希望以编程方式使用以下HTML:C# 以编程方式将超链接添加到listitem,c#,asp.net,html,C#,Asp.net,Html,我希望以编程方式使用以下HTML: <ul><li><a href="#"></a></li></ul> 列表项“li”具有“Text”和“Value”属性 您需要手动创建链接,如下所示: string link = "<a href=\"#\">link text</a>"; 字符串链接=”; 并将ListItem的“文本”设置为字符串 如果这是您经常做的事情,那么创建一个从ListItem继
<ul><li><a href="#"></a></li></ul>
列表项“li”具有“Text”和“Value”属性 您需要手动创建链接,如下所示:
string link = "<a href=\"#\">link text</a>";
字符串链接=”;
并将ListItem的“文本”设置为字符串
如果这是您经常做的事情,那么创建一个从ListItem继承的新类可能是值得的,该类在其构造函数中接受两个参数(url和文本),并自动创建链接
编辑:如另一个答案所示,您可能还希望使用BulletedList类的“Hyperlink”显示模式。如果采用此方法,则可以使用ListItem的“Value”属性指定链接应指向的URL,并使用“Text”属性指定链接文本。请尝试这种方法
在.aspx
页面中放置一个asp:Literal
<asp:Literal ID="ltrInfo" runat="server"></asp:Literal>
”;
ltrInfo.Text+=“”;
ltrInfo.Text+=“”;
从中,使用
+1为好答案。您只需确保在ListItem上设置文本和值,否则链接将不存在(没有值)或不可见(没有文本)@Jeff:当然,需要设置ListItem的值,如第一个示例中所示。第二个示例代码与Ozkan的格式匹配,为了简洁起见省略了这些值。这不起作用:我在我的网站上看到了这一点:
a href=”#“link text/a
@Ozkan:没错,此解决方案不起作用,因为该值将被HTML转义,并且特定的.Net控件没有用于关闭该值的HtmlEncode属性。”。使用DisplayMode设置(请参见我的答案),或者删除BulletedList,改用ListView或Literals。@huMpty duMpty:更好的解决方案,因为它还提供了包含“onclick”操作和完整范围的锚定标记魔术的机会。
<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>";
<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);