Доступ к элементам управления пользовательских элементов управления с веб-страницы хостинга - PullRequest
0 голосов
/ 26 ноября 2009


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

Но я не уверен, что приведенное выше утверждение верно, поскольку я смог получить доступ (с веб-страницы хостинга) к событию ClickButton.Click (предположим, что WebUserControl1 содержит элемент управления ClickButton):

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
         Button ClickButton = (Button)WebUserControl1.Controls[0];
         ClickButton.Click += someClickHandler;
    }


1012 * спасибо *

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

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

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

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

1 голос
/ 26 ноября 2009

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

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