2009-09-21 3 views
0

Итак, у меня есть пользовательский элемент управления. У меня есть событие (SelectionChanged), и я хотел, чтобы кто-либо использует свой контроль, чтобы сделать следующее, чтобы подключить событие:ASP.Net User Control - VS Event Wireup

  1. перетащить элемент управления на странице
  2. в режиме конструктора, нажмите на вид управления
  3. обработчики событий управления (из окна свойств)
  4. найти это событие SelectionChanged
  5. двойной щелчок, и пусть Visual Studio создать код позади функции и проволочную вверх на странице ASPX.

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

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


Мои мероприятия опубликованы. Вот они:

public delegate void SelectionChangedDelegate(object sender, SelectionChangedEventArgs e); 
public event SelectionChangedDelegate SelectionChangedEvent; 
+0

Есть ли у вас определенные события? – shahkalpesh

+0

Посмотрите, помогает ли эта ссылка: http://msdn.microsoft.com/en-us/library/t4z863dh%28VS.71%29.aspx – shahkalpesh

+0

Shahkalpesh, я не уверен, как эта ссылка помогает. Я могу создать свой контроль без каких-либо проблем с кодированием, но я бы хотел, чтобы В.С. для создания для меня обработчиков событий. Я не хочу, чтобы другой разработчик должен был ввести «protected void UC_SitesBar_SelectionChanged (отправитель объекта, SelectionChangedEventArgs e) {}". это просто кажется огромным беспокойством каждый раз, когда вы хотите подписаться на мое мероприятие. – Miles

ответ

2

Я не понимаю, как молнии там нет. Является ли ваш контроль наследованием от System.Web.UI.HtmlControls.HtmlControl или System.Web.UI.Control или другой получить контроль?

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

Тот факт, что молния не существует, заставляет меня поверить, что вы не наследуете ни один из классов управления.

EDIT: Ну, вам это не понравится. UserControl не ведет себя так же, как WebControl. И как таковой, VS Editor не подключается к событиям.

Если для вас важна реклама событий (если это будет проданная библиотека), я бы рекомендовал вам переписать элемент управления как WebControl. Это потребует, чтобы вы добавили все элементы управления программным способом в метод переопределения CreateChildControls.

Возможно, вы также сможете обернуть свой UserControl внутри WebControl и вывести все события таким образом.

Удачи!

+0

Вот объявление моего класса: public partial class UC_SiteBar: System.Web.UI.UserControl – Miles