#c#
#c#
Вопрос:
Я попытался программно написать метод и назначить его как метод, вызываемый при событии onclick, но здесь что-то не так. Метод не вызывается.
BulletedList bulletList = new BulletedList();
Я добавил элементы в маркированный список с помощью bulletList.Items.Add(...);
Я попытался программно назначить метод bulletList_Click с bulletList.Click = new BulletedListEventHandler(bulletList_Click);
Это метод, который должен быть отключен
аннулировать bulletList_Click (отправитель объекта, BulletedListEventArgs e) { //коды здесь }
Комментарии:
1. Вы используете IDE, такую как VS, или пишете код вручную?
2. Привет, я использую Visual Studio. Кроме того, список маркеров создается программно.
Ответ №1:
Если вы не создали свой собственный специальный класс для обработки событий, вы, вероятно, просто ищете:
bulletList.Click = новый обработчик событий (bulletList_Click);
Редактировать:
На самом деле ваша команда указана там правильно. Однако, прочитав ваш комментарий выше о том, что он создан программно, у меня есть обновление:
Чтобы зарегистрировать событие для объекта, который создается программно, событие должно быть создано и добавлено к элементу управления на странице во время Page_Init
события. Если этого не произойдет, объект не будет добавлен в viewstate и никакие события не будут доступны для просмотра.
Редактировать 2:
Вот статья о 4GuysFromRolla, которая помогла мне выполнить это в последний раз, когда мне это понадобилось. Вот следующая статья об этом, указывающая, почему событие Page_Init является подходящим, исходя из необходимости иметь элемент управления в ViewState. Я видел в другом месте на других форумах, что это можно обойти, убедившись, что при каждой обратной отправке элементы управления добавляются идентично последнему времени загрузки страницы, но я не проверял эту функциональность.
Комментарии:
1. Привет, я получаю
Cannot implicitly convert Type 'System.EventHandler' to 'System.Web.UI.WebControls.BulletedListEventHandler'
2. Затем используйте ‘System.Web.UI.WebControls. BulletedListEventHandler’ вместо ‘EventHandler’, нет?
3. Да. Я действительно, взгляните на мой вопрос выше, я использовал
BulletedListEventHandler
.4. @csl: Я добавил правку, основанную на одном из ваших комментариев. Ваш код в вопросе выглядит для меня хорошо, но, вероятно, он просто не запускается из-за того, когда создается объект.
5. Привет, но что произойдет, если маркированный список создается другими методами, отличными от
Page_Init
метода?
Ответ №2:
Вы пытались автоматически сгенерировать обработчик событий из интерфейса перетаскивания Visual Studio? Например, выбрав элемент управления, выбрав событие Click из списка событий справа, а затем просто написав код внутри сгенерированного обработчика?