Как передать другой элемент управления в пользовательский элемент управления ASP.NET в качестве параметра при его объявлении с использованием идентификатора другого элемента управления? - PullRequest
0 голосов
/ 13 марта 2009

Я пытаюсь создать элемент управления (MyControl), который выполняет действия с другими элементами управления на странице, на которой он находится. Имеет свойство:

public property System.Web.UI.Control SomeOtherControl;

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

MyControl.SomeOtherControl = TheOtherControl;

Вместо того, чтобы делать это на коде каждой страницы, которая использует MyControl, я хочу сделать это на странице ASPX:

<xyz:MyControl SomeOtherControl="TheOtherControlsID" />

Чтобы сделать это, я попытался использовать метод Page.FindControl() в строке идентификатора, чтобы найти ссылочный элемент управления при инициализации MyControl, но он только ищет элементы управления верхнего уровня страницы. Я мог бы написать свой собственный рекурсив FindControl(), но я думаю, что должен быть лучший способ сделать это, и я беспокоюсь о производительности чего-то подобного. Есть идеи?

1 Ответ

1 голос
/ 13 марта 2009

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

...