2011-05-17 39 views
4

所以我需要在asp.net中编写简单的“扫雷”游戏(仅用于学习目的 - 它应该几乎只有JavaScript,但无论如何...)ASP.NET - 从未调用编程式创建按钮的事件处理程序

我在PageLoad上动态创建游戏板,创建Table时,每个TableCell包含ImageButton

当我创建每个按钮,我添加到它的Click事件我自己的事件处理程序:

cellButton.Click += new EventHandler(tryOpenCell); 

当我跑步项目,游戏页面加载完全按照预期,但是当我点击在任何单元格(这是一个ImageButton,如我所说)请求返回到服务器代码,但按钮的事件处理程序从未调用。相反,整个过程只是重演,意味着重新整个桌面游戏。

所以我的问题是为什么我的事件处理程序从不调用?

回答

2

在回发的按钮应该重新然后,它会处理该事件..

protected void Page_Load(object sender, EventArgs e) 
{ 
     ImageButton btn = new ImageButton(); 
     btn.ID = "Btn"; 
     btn.Click += new EventHandler(tryOpenCell); 
     form1.Controls.Add(btn); 
} 

您的按钮应该在页面加载事件被重新处理,才可以处理该事件处理程序。

+0

我想最重要的是在最初创建按钮时和在回发时指定相同的ID? – 2011-05-17 08:42:18

+0

在处理事件hanlder之前,应该在页面加载事件中重新创建按钮。我在我的最后测试了这件事。正如您通常在单击按钮时知道的那样,页面加载事件在单击事件处理程序之前调用。 – 2011-05-17 08:43:44

+0

谢谢!我认为我在ASP.Net的事件派生编程方面存在差距。现在它更有意义。 – 2011-05-17 08:49:15

相关问题