代码之家  ›  专栏  ›  技术社区  ›  Simon_Weaver

如果您没有访问页面的权限,是否有方法加载用户控件?

  •  1
  • Simon_Weaver  · 技术社区  · 16 年前

    如果我不能访问页面对象(比如说我在实用程序类中),如何在ASP.NET中动态加载用户控件?

    通常你会这样做:

    Page.LoadControl("~/controls/MyControl.ascx");
    
    2 回复  |  直到 16 年前
        1
  •  2
  •   M4N    16 年前

    可以使用以下代码将实用程序类中的控件添加到当前页:

    Page currentPage = HttpContext.Current.Handler as Page;
    if (currentPage != null)
    {
        currentPage.Controls.Add(
            currentPage.LoadControl("~/controls/MyControl.ascx"));
    }
    

    这是可行的,但我不建议这样做,并认为它是一个黑客。

        2
  •  1
  •   Andrew Hare    16 年前

    正确加载用户控件的唯一方法(也就是说,以启动其生命周期的方式)是将其添加到另一个控件的控件集合中。

    因此,您要么需要传递对该页的引用,要么需要传递对该页上的控件的引用,然后将该控件添加到该控件的集合中。