2017-04-18 37 views
-3

我有一個html列表,我試圖將HTML按鈕添加到屬性「innerhtml」使用代碼後面的文件。我能夠添加按鈕但是onclick事件不被解僱通過innerhtml屬性添加html按鈕到列表

HTML:

<ul runat="server" id="list"> 
    <li></li> 
    <li><a id="loginID" runat="server" href="../Accounts/login.aspx">Login</a></li> 
    <li id="logout" runat="server"> <a href="~/Register.aspx" runat="server"> Register</a></li>  
</ul> 

後面的代碼:

logout.InnerHtml = "<input type=\"submit\" id=\"b1\" runat=\"server\" onserverclick=\"b1_click\" />"; //logout is the id of the list item    
     } 
    } 

    public void b1_click(Object sender,EventArgs e) 
    { 
     Response.Redirect("~/Accounts/login.aspx"); 
    } 
} 
+0

看看http://stackoverflow.com/questions/4830095/asp-net-button-onserverclick-only-works-when-onclick-isnt-defined,也許它可以對你有用。 – PhoneixS

+0

[用JavaScript插入HTML元素]的可能重複(http://stackoverflow.com/questions/814564/inserting-html-elements-with-javascript) –

回答

0

這不是動態創建服務器 - 正道側面控制。 請查看下面的示例以更好地瞭解如何操作。請記住,您無法分配ClientID屬性,因爲它在運行時是隻讀和初始化的。

protected void Page_Load(object sender, EventArgs e) 
{ 
    Button btn = new Button(); 
    btn.Text = "Dynamic Button"; 
    btn.ID = "b1"; // Server Side ID 
    btn.Click += b1_click; 

    logout.Controls.Add(btn); 
} 

public void b1_click(Object sender,EventArgs e) 
{ 
    Response.Redirect("~/Accounts/login.aspx"); 
}