2010-12-01 3 views
0

На загрузке страницы есть способ перечислить все пользовательские элементы управления гнездами для этой конкретной загрузки страницы?Список всех вложенных элементов управления пользователя с главной страницы на странице загрузки

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

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

У кого-нибудь есть идеи?

+0

Зачем вам нужно это сделать до того, как он появится? – onof 2010-12-01 16:34:54

+0

Производительность базы данных довольно низкая, и я пытаюсь переписать доступ к данным для запуска asynch на потоках фона parrallel, а затем возвращать обратные вызовы в каждый пользовательский элемент управления, чтобы предоставлять данные, когда они возвращаются из базы данных. Чтобы сделать это, мне нужно как можно больше узнать о запросах данных, чтобы попытаться сделать так много, как я могу, для этого требуется найти пользовательские элементы управления и спросить их, какие данные им нужны, и обратный адрес обратного вызова. Дело в том, чтобы улучшить производительность с минимальными изменениями в приложении, это мой первый эксперимент. – asawyer 2010-12-01 17:08:21

ответ

1

Будет что-то вроде этой работы?

void ProcessControls(Control control) 
{ 
    if(control is IMyInterface) //whatever your interface name is 
    { 
     (control as IMyInterface).MethodName(); 
    } 

    foreach(Control child in control.Controls) 
    { 
     ProcessControls(child); 
    } 
} 
Смежные вопросы