我在我的代码隐藏中创建了一个字符串,其中一部分包含一个超链接。我像这样创建了我的URl:
var hostUrl = Request.Url.Scheme + "://" + Request.Url.Host + "/thispage.aspx";
如果我将其包含在字符串中,如下所示:
`display.Text = "Your request has been recorded. To return to the
home page, click here: " + hostURL;`
结果输出如下所示:
相反,我希望能够创建一个带有显示值的超链接,这样我就可以显示部分句子而不是显示网址,从而产生如下内容:
在原始HTML中,我会使用a href
的显示值来完成此操作,如下所示:
<a href="http://example.ex/thispage.aspx">--DISPLAY VALUE--</a>
但是,我希望从我的代码隐藏实现这一点 - 以便我可以根据显示它之前的操作以编程方式更改文本和超链接。因此,解决方案必须是display.Text
的属性。这有可能,怎么样?
答案 0 :(得分:3)
有点难以弄清楚你在这里尝试做什么。大概输出一段包含超链接的文本? 如果是这样,我会在你想要段落的页面上放置一个占位符控件(这里称为phParagraph),然后你可以这样做:
var uri = new Uri("http://stackoverflow.com");
var paragraph = new Literal();
paragraph.Text = String.Format("<p>Lorem ipsum <a href=\"{0}\">{1}</a> dolor</p>", uri.AbsoluteUri, "custom text");
phParagraph.Controls.Add(paragraph);
或者,如果您只想在页面上删除超链接,请执行以下操作:
var linkButton = new LinkButton();
linkButton.PostBackUrl = uri.AbsoluteUri;
linkButton.Text = "custom text";
phParagraph.Controls.Add(linkButton);
答案 1 :(得分:2)
您将无法使用超链接本身执行此操作。当涉及到超链接的“链接”部分时,它是全部或全部。在这些情况下,我通常会使用一些“免费”标签,因为我喜欢称它们。基本上只是添加一些绒毛的标签。
<asp:Label ID="lblBeforeLink" runat="server"></asp:Label>
<asp:HyperLink ID="hyp" runat="server"></asp:HyperLink>
<asp:Label ID="lblAfterLink" runat="server"></asp:Label>
然后在你的代码中,只需适当地设置控件。
lblBeforeLink.Text = "Lorem ipsum";
hyp.Text = "custom text";
hyp.NavigateUrl = "http://www.google.com"; // your url...
lblAfterLink.Text = "dolor";
导致类似这样的事情:
Lorem ipsum custom text dolor。
答案 2 :(得分:1)
如果您需要动态网址,请在首页中创建<asp:HyperLink ID="hprLink" runat="server" />
,然后在后面的代码中使用以下内容:
hprLink.NavigateUrl = "http://your_web.site/";
hprLink.Text = "Text how to display your link";
如果您还需要动态HyperLink控件,请使用后面的代码中的下一个:
HyperLink hpr = new HyperLink();
hpr.Text = "Text to be displayed as hyperlink";
hpr.NavigateUrl = "http://your_web.site/";
somePanel_or_element.Controls.Add(hpr);