2017-04-18 101 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"); 
} 
相关问题