有没有办法将类用作用户控件的类工厂?

时间:2009-06-23 15:36:27

标签: asp.net class controls factory

在.NET 2.0中是否有办法将类用作用户控件的类工厂?换句话说,1个超级坐在那里,当我想要一个用户控件时,它创建它并将它返回给我。它似乎需要ASP命名空间,我似乎无法引用它。

我有一个带占位符的母版页。根据用户的身份验证,我想动态加载用户控件。例如,如果它们经过身份验证,则可能是搜索控件,如果他们未登录,则可能是广告。我可以动态加载它们。但我的计划是使用一个类来控制它。现在我必须在后面的母版页代码上加载它们。没有代码可以在课堂上显示,因为它不会让我引用用户控件,所以我不会走远。

3 个答案:

答案 0 :(得分:1)

用户控件意味着简单的页面内容块。它们并不意味着幻想。使用用户控件执行此操作时可能会遇到更多麻烦。

答案 1 :(得分:0)

你可以动态创建控件(我主要是为Sharepoint站点完成它,偶尔也会在页面上重载CreateChildControls),但你从中获得的是一堆页面生命周期的麻烦。

您可能会发现最佳解决方案是使用单独的页面(使用master进行布局),以及url修剪。

因此\ search仅限于web.config中经过身份验证的用户。因此,如果他们试图去搜索,那么未洗过的群众会被重定向到\ Login(包含广告)。

答案 2 :(得分:0)

一些事情,也许有些事情是有帮助的:)......

  1. 我想你可能正在寻找一个LoginView Class。它将根据身份验证状态甚至角色显示单独的控件或任何html。如果我告诉你一些你已经知道的事情,请道歉。

  2. 要替换LoginView功能,这似乎是您对我的描述,服务器控件会更合适。具体来说是Composite Server Control

  3. 动态加载功能可以通过添加ASP.Net AJAX来完成。例如,您的复合控件可以基于ASP.Net AJAX UpdatePanel。您还可以将服务器控件基于ScriptControl基类。

  4. 即使您可以使用AJAX动态加载,我也建议您使用已经完成的功能。也就是说,构建一个Web Part Server Control