C# 如何为动态生成的按钮添加EventHandler
这与这些问题非常相似,但它们似乎对我没有帮助(将在下面解释原因):C# 如何为动态生成的按钮添加EventHandler,c#,asp.net,button,event-handling,C#,Asp.net,Button,Event Handling,这与这些问题非常相似,但它们似乎对我没有帮助(将在下面解释原因): 我正在创建一个C#aspx页面。该页面获取一组数据,然后从中构建一个表。表中的一列包含一个按钮,该按钮在构建数据时动态创建(因为按钮的操作依赖于表中的数据) Default.aspx <body> <form id="form1" runat="server"> <div> <asp:Table ID="tblData" runat="server"&g
<body>
<form id="form1" runat="server">
<div>
<asp:Table ID="tblData" runat="server"></asp:Table>
</div>
</form>
</body>
这就是我绊倒的地方。我知道我的EventHandler没有被触发,因为它需要移到Page_Load方法。但是,如果我将btn1创建和EventHandler移到Page_Load,我将无法再在Build_表中访问它们
我看到的所有代码示例要么在ASPX页面中静态添加了btn1,要么在页面加载中动态创建了btn1。我想要完成的任务的最佳方式是什么?在绑定事件之前,使用ID创建按钮:
Button btn1 = new Button();
btn1.ID = "btnMyButton";
btn1.Click += new EventHandler(this.btn1_Click);
确保每个按钮都有一个唯一的ID。此外,我会亲自将代码移动到
Page\u Init
,而不是Page\u Load
我运行了您的代码,代码正常工作,事件处理程序不会触发任何问题。你有没有验证过你的处理程序正在开火,但当它在做“惊人的事情”的时候,发生了一些不好的事情?
Button btn1 = new Button();
btn1.ID = "btnMyButton";
btn1.Click += new EventHandler(this.btn1_Click);