我有一个asp标签,我需要能够根据后面的代码进行更改。我怎样才能做到这一点?
ASPX :(第一部分仅适用于“TestA@abc.com”,第二部分根据后面代码中的“if”语句动态更改标签(EmailLabel)。如何将这两者集成在一起标签是mailto?谢谢。
<p>Email at <a href="mailto:TestA@abc.com?subject=Comments">TestA@abc.com</a>.</p>
<p>Email at <asp:Label ID="EmailLabel" runat="server"></asp:Label>.</p>
代码背后:
public changeLabel()
{
if (//Some Condition Here)
{
this.EmailLabel.Text = "TestA@abc.com";
}
else
{
this.EmailLabel.Text = "TestB@abc.com";
}
}
答案 0 :(得分:0)
你在那里尝试做什么是行不通的。标签呈现为<span>
标签,因此永远不会“可点击”。你想做更像这样的事情:
<p>Email at <a href="mailto:TestA@abc.com?subject=Comments">TestA@abc.com</a>.</p>
<p>Email at <asp:LinkButton ID="EmailLabel" runat="server"></asp:LinkButton>.</p>
然后,不要更改Text
属性,而是更改NavigateUrl
属性。
您还可以使用HtmlControl
,它基本上是您添加runat="server"
属性的标准HTML标记。
<p>Email at <a id="EmailLabel" runat="server" href=""></a>.</p>
然后,您可以通过服务器端代码修改此<a>
标记,属性会略有不同,但现在您可以使用真实的实时锚标记。
这个其他问题也可能有用:How to launching email client on LinkButton click event?
答案 1 :(得分:0)
<html>
<body>
<span id="foo"
onclick="document.getElementById('foo').innerHTML = 'never say never'"
>
Click Me!
</span>
</body>
</html>
对于你的Label,只需记住.Text是.innerHTML的服务器等价物,这样你就可以在设置.Text时把你想要的任何HTML放到asp:Label中。请注意跨站点脚本攻击。