Добавить обработчик событий в пользовательский элемент управления из пользовательского объекта - PullRequest
0 голосов
/ 25 июля 2009

Я создал пользовательский элемент управления, который будет содержать таблицу LinkButtons (и другую информацию). Я создаю строки таблицы в другом пользовательском объекте и возвращаю TableRowCollection с кнопками ссылки в определенных ячейках этих строк таблицы.

В коде для пользовательского элемента управления я создал обработчик событий для нажатия кнопки этихLinkButtons. Я передаю пользовательский элемент управления в вызов метода, чтобы создать строки таблицы (используя «this»), а затем пытаюсь добавить обработчик события в «Click» LinkButton. По какой-то причине обработчик событий не срабатывает при возврате сообщения, вызванного этой кнопкой. Любые идеи относительно того, что я мог бы сделать, чтобы это событие сработало?

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

LinkButton button = new LinkButton();
button.Text = movie.Title;
button.Click += new EventHandler(control.Link_Click);
button.CommandArgument = result.LocalID.ToString();
cell1.Controls.Add(button);

Где "контроль" - этопользовательский контроль передается в качестве параметра, а Link_Click - это обработчик событий.

Заранее спасибо!

1 Ответ

1 голос
/ 25 июля 2009

Прежде всего, если обработчик событий уже находится внутри пользовательского элемента управления, нет необходимости передавать ссылку на него в его собственный метод. Вы можете просто получить доступ к любому свойству или методу внутри обработчика событий.

События зависят от идентификаторов элемента управления для подключения к правильному элементу управления. Если вы не создаете свои кнопки ссылок каждый раз на обратной передаче точно так же, как и вы, и убедитесь, что они имеют одинаковые идентификаторы, как и раньше, тогда ваш обработчик событий не сработает, потому что конвейер ASP.Net не сможетчтобы найти правильную кнопку в дереве элементов управления.

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

Убедитесь, что вы каждый раз правильно воссоздаете свои элементы управления и не каждый раз повторно привязываете свой пользовательский элемент управления.

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