c#
  • code-behind
  • linkbutton
  • 2013-06-05 129 views 0 likes 
    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(); 
    

    當頁面然而reneders,LinkBut​​ton的是不能點擊。

    是否可以做我想做的事情?

    問候

    +0

    爲什麼不動態創建Linkbutton而不是創建stringbuilder。 – Zaki

    +4

    你不能像這樣嵌入asp:LinkBut​​tons ...刪除asp:並使其成爲普通鏈接/

    回答

    4

    Asp.net不會渲染那個寫成字符串的linkbutton標籤。如果你想動態地創建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>")); 
    

    這將添加文字和的LinkBut​​ton,也你可以使用鏈接按鈕的onclick事件。

    protected void lnkSendEmail_Click(object sender, EventArgs e) 
    { 
        //write your code to handle link button click event 
    } 
    
    3

    <p><a>元素是非法的,鏈接會的段落中去,而不是。也就是說,如果你想要一個<p>包裝器,然後把它放在你的鏈接上,並將純文本插入鏈接的Text屬性。

    哦,現在纔看到,後來你試着寫出其他東西,特別是未經編碼的內容,不會按照你期望的方式渲染。 .NET不會處理您的嵌入式LinkBut​​ton,因爲Text屬性被視爲與文本一樣。

    1

    是否甚至呈現爲LinkBut​​ton的??,你可以有錨標記定義的事件來處理這個scenarion,但添加的LinkBut​​ton這樣不會工作。

    相關問題