ASP.NET - обработчик событий кнопки, созданной программным способом, никогда не вызывается - PullRequest
4 голосов
/ 17 мая 2011

Так что мне нужно написать простую игру "Сапер" на asp.net (только для учебных целей - это должен быть почти только javascript, но в любом случае ...)

Я создаю игровое поле динамически на PageLoad, создавая Table, когда каждый TableCell содержит ImageButton.

Когда я создаю каждую кнопку, я добавляю к ее событию Click свой собственный обработчик события:

cellButton.Click += new EventHandler(tryOpenCell);

Когда я запускаю проект, страница игры загружается точно так, как ожидалось, но когда я щелкаю по любой ячейке (как я уже сказал, ImageButton), запрос возвращается к коду сервера, но обработчик событий кнопки никогда вызывается. Вместо этого весь процесс просто повторяется, что означает восстановление всей настольной игры.

Итак, мой вопрос: почему мой обработчик событий никогда не вызывался?

1 Ответ

2 голосов
/ 17 мая 2011

При обратной передаче ваша кнопка должна быть воссоздана, и тогда она будет обрабатывать событие.

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

Ваша кнопка должна быть заново создана в событии загрузки страницы, прежде чем она сможет обработать обработчик события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...