0

我有一些我想使用 LinkBut​​ton 调用的代码,因为它比尝试使用 HyperLink 更容易。

像这样的东西

StringBuilder sb = new StringBuilder();
sb.Append("<p>Please check that you have entered the correct user name If you have, <asp:LinkButton ID='lnkSendEmail' runat='server' onclick='lnkSendEmail_Click'>Click Here</asp:LinkButton> to complete registration</p><br/>if you have not registerd, <a href='Registration.aspx'>Click here</a>");
labTester.Text = sb.ToString();

然而,当页面呈现时,LinkBut​​ton 是不可点击的。

有可能做我正在尝试的事情吗?

问候

4

3 回答 3

4

Asp.net 不会将该链接按钮标记呈现为字符串。如果要动态创建链接按钮,则必须将其创建为动态控件并将其添加到任何父控件,例如 PlaceHolder 或 Panel。您可以使用以下代码作为参考:

在 aspx 页面上添加一个占位符。(假设它的 id 是PlaceHolder1

.cs 文件代码:

LinkButton lnkSendEmail = new LinkButton();
lnkSendEmail.ID = "lnkSendEmail"; 
lnkSendEmail.Text = "Click Here";
lnkSendEmail.Click += new EventHandler(lnkSendEmail_Click);
PlaceHolder1.Controls.Add(new LiteralControl("Please check that you have entered the correct user name If you have, "));
PlaceHolder1.Controls.Add(lnkSendEmail);
PlaceHolder1.Controls.Add(new LiteralControl("to complete registration</p><br/>if you have not registerd, <a href='Registration.aspx'>Click here</a>"));

这将添加文本和链接按钮,您也可以使用链接按钮的 onclick 事件。

protected void lnkSendEmail_Click(object sender, EventArgs e)
{
  //write your code to handle link button click event
}
于 2013-06-05T10:30:32.017 回答
3

<p> 一个<a>元素内是非法的,链接将改为段落内。也就是说,如果你想要一个<p>包装器,那么将它放在你的链接周围并将纯文本插入到链接的 Text 属性中。

哦,现在才看到,稍后您尝试写出其他内容,特别是未编码的内容,这些内容不会以您期望的方式呈现。.NET 不会处理您嵌入的 LinkBut​​ton,因为 Text 属性被视为文本。

于 2013-06-05T10:07:22.263 回答
1

它甚至呈现为 LinkBut​​ton??,您可以使用带有已定义事件的锚标记来处理此场景,但是像这样添加 LinkBut​​ton 将不起作用。

于 2013-06-05T10:43:15.187 回答