我有一个HTML列表,我尝试使用文件背后的代码将HTML按钮添加到属性" InnerHTML"中。我可以添加按钮,但是onclick事件没有被触发
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");
}
}
这不是动态创建服务器端控件的正确方法。请查看下面的示例,以更好地了解如何做到这一点。请记住,您无法分配客户端属性,因为它仅在运行时读取和初始化。
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");
}