链接按钮未正确呈现

时间:2013-06-05 09:58:06

标签: c# code-behind linkbutton

我想要使用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不可点击。

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

此致

3 个答案:

答案 0 :(得分:4)

Asp.net不会将linkbutton标记呈现为字符串。如果要动态创建链接按钮,则必须将其创建为动态控件并将其添加到任何父控件(如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
}

答案 1 :(得分:3)

<p>元素中

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

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

答案 2 :(得分:1)

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