我想要使用LinkButton调用一些代码,因为它比尝试使用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();
当页面重新出现时,LinkButton不可点击。
是否有可能做我正在尝试的事情?
此致
答案 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不会处理您的嵌入式LinkButton,因为Text属性被视为文本。
答案 2 :(得分:1)
它甚至呈现为LinkButton ??,你可以使用带有已定义事件的锚标记来处理这个场景,但添加像这样的LinkButton将不起作用。