Пользовательский контроль asp.net vb вызывает событие на странице вызова - PullRequest
6 голосов
/ 07 апреля 2010

Я пытаюсь узнать о пользовательских элементах управления.Я создал пользовательский элемент управления, который имеет текстовое поле и кнопку.То, что я хотел бы сделать, это когда я нажимаю кнопку в пользовательском элементе управления, заполняю метку на странице aspx.Я понимаю, что у меня может быть просто кнопка на странице, которая использует некоторые свойства пользовательского элемента управления для получения этой информации ... но я хотел бы знать, как это сделать с помощью кнопки пользовательского элемента управления ... причина этогоКнопка - это просто пример ... инструмент обучения.если бы я мог заставить это работать, я бы, вероятно, поместил в пользовательский элемент управления что-то, что могло бы потребовать такого рода передачи информации.Во всяком случае ... я нашел несколько примеров на C #, которые я пытался заставить работать как vb ... но однажды начал входить в делегаты и мероприятия ... ну ... это заставило меня обратиться к этому сообщению.Надеюсь, кто-то может протянуть руку.

Ответы [ 3 ]

18 голосов
/ 07 апреля 2010

Посмотрите, может ли этот урок помочь. Лучший способ сделать это, безусловно, подключить событие, которое не так сложно, как вы думаете. Основы:

1. Определите событие в вашем классе управления:

Public Event MyEvent as System.EventHandler

2. Вызовите событие в подпрограмме или функции вашего класса управления:

RaiseEvent MyEvent(Me, New EventArgs())

3. Обработайте событие на странице, содержащей ваш элемент управления:

Protected Sub MyControl_MyEvent(ByVal sender As Object, ByVal e As EventArgs) Handles MyControl.MyEvent
    'Do stuff here
End Sub
2 голосов
/ 07 апреля 2010

Я считаю, что вы хотели бы, чтобы ваш UserControl поднял событие. В этой статье MSDN объясняется, как вызывать события , и приведены примеры VB. Затем ваша страница может подписаться на событие, которое вызывает ваш UserControl, и установить любые значения, которые вам нужно установить. Возможно, было бы лучше представить некоторые из ваших полей UserControl (например, TextBoxes и т. Д.) Как общедоступные свойства, чтобы они были доступны из подписанного элемента управления.

1 голос
/ 07 апреля 2010

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

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

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

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