使用web.config控件引用以编程方式加载UserControl

时间:2011-12-15 17:39:16

标签: c# asp.net

我非常熟悉以编程方式加载用户控件,但是我想使用web.config中设置的引用而不是页面上的<%@ Reference %>声明。

<pages>
  <controls>
    <add tagPrefix="uc" tagName="Menu" src="~/App_Controls/MainMenu.ascx" />...

如何使用web.config参考以编程方式在我的页面上加载此控件,而不是路径或注册声明。

        Control uc = (Control)Page.LoadControl("~/usercontrol/WebUserControl1.ascx");
        plhStatCounts.Controls.Add(uc);

由于

1 个答案:

答案 0 :(得分:1)

您可以从web.config加载PagesSection,然后访问其Controls集合。

例如:

    // Open the config
    Configuration webConfig = WebConfigurationManager.OpenWebConfiguration("");

    // Retrieve the section
    PagesSection pages = (PagesSection)webConfig.GetSection("system.web/pages");

    // Find the control you are interested in, then load it
    for (int i = 0; i < pages.Controls.Count; i++)
    {
    }