Я пытаюсь создать элемент управления (MyControl
), который делает вещи другим элементам управления на странице, на которой он включен. У него есть имущество:Как передать другой элемент управления в пользовательский элемент управления ASP.NET в качестве параметра в его объявлении с использованием идентификатора другого элемента управления?
public property System.Web.UI.Control SomeOtherControl;
Я хочу, чтобы иметь возможность установить это свойство со страницы ASPX, использующей элемент управления. Прямо сейчас, единственный способ, которым я могу это сделать это в Page_Load
из отделенного кода:
MyControl.SomeOtherControl = TheOtherControl;
Вместо того, чтобы сделать это на отделенном код каждой страницы, которая использует MyControl
, я хочу сделать просто сделать это на странице ASPX:
<xyz:MyControl SomeOtherControl="TheOtherControlsID" />
для того, чтобы сделать это, я попытался с помощью метода Page.FindControl()
на идентификационной строке, чтобы найти указываемый контроль, когда MyControl
инициализирует, но он ищет только элементы управления верхнего уровня данной страницы. Я мог бы написать свой рекурсивный FindControl()
, но я считаю, что должен быть лучший способ сделать это, и я беспокоюсь о производительности чего-то подобного. Есть идеи?