-1

我有一个 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";
 }
}
4

2 回答 2

1

你在那里尝试做的事情是行不通的。标签呈现为<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>通过服务器端代码修改此标签,属性会略有不同,但现在您有了一个真正的实时锚标签可以使用。

这个其他 SO 问题也可能会有所帮助:如何在 LinkBut​​ton 点击​​事件上启动电子邮件客户端?

于 2013-01-31T00:01:07.650 回答
0
<html>
<body>
<span id="foo" 
      onclick="document.getElementById('foo').innerHTML = 'never say never'"
>
    Click Me!
</span>
</body>
</html>

对于您的标签,请记住 .Text 是 .innerHTML 的服务器等效项,因此您可以在设置 .Text 时将所需的任何 HTML 直接放入 asp:Label 中。只需注意跨站点脚本攻击。

于 2014-12-09T20:05:38.827 回答