ASP.NET – 从不调用以编程方式创建的按钮的事件处理程序

所以我需要在asp.net中编写简单的“扫雷”游戏(仅用于学习目的 – 它应该几乎只是
javascript但无论如何…)

我在PageLoad中动态创建游戏板,通过在每个TableCell包含一个ImageButton时创建一个表.

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

cellButton.Click += new EventHandler(tryOpenCell);

当我正在运行项目时,游戏页面加载完全符合预期,但是当我点击任何单元格(我说的是ImageButton)时,请求返回到服务器代码,但按钮的事件处理程序从未被调用.相反,整个过程只是重复,意味着重新生成整个桌面游戏.

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

最佳答案 在Postback上你的按钮应该重新创建,然后它将处理事件..

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

您的按钮应该在页面加载事件中重新创建,然后才能处理事件处理程序.

点赞