Как получить доступ к элементам управления страницы из моего пользовательского серверного элемента управления?

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

    If (_targetControlId <> "") Then
        Dim targetControl As WebControl = Me.Page.FindControl(_targetControlId)
        targetControl.Attributes.Add("onclick", "test1();")
        targetControl.Attributes.Add("onclick", "test2();")
    End If

Что происходит, так это то, что targetControl всегда оказывается равным NULL и вызывает сбой страницы, когда я пытался добавить к нему атрибуты. Я дважды проверил правописание targetControlId, и я указываю элемент управления, который является runat="server". Как правильно серверному элементу управления получить доступ к другим элементам управления на своей странице?

Спасибо,

Майк

1 ответ

Решение

Прежде всего, я должен указать, что искомое поведение уже существует в ModalPopupExtender, который поставляется с бесплатным AjaxControlToolkit с открытым исходным кодом. Я бы порекомендовал вам просто использовать это. Если вы все еще уверены, что хотите написать свой собственный, то я бы рекомендовал хотя бы взглянуть на их код, чтобы увидеть, как они это делают. ExtenderControlBase.FindControlHelper это хорошее место для начала.

Другие вопросы по тегам