在页面加载时列出主页面中的所有嵌套用户控件

时间:2010-12-01 16:10:26

标签: c# asp.net

在页面加载时,是否可以枚举特定页面加载的所有嵌套用户控件?

我希望能够枚举实现接口的所有用户控件,并在asp.net将控制权传递给他们的page_load事件之前调用控件的接口方法。

问题来自主页面级别,应用程序中的任何页面都可以加载,并且每个页面都可以有任何随机用户控件,我需要类型引用来确定它们是否实现了接口,并调用方法

有没有人有任何想法?

1 个答案:

答案 0 :(得分: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);
    }
}