0

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

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

4

3 回答 3

1

用户控件是页面内容的简单块。它们并不意味着花哨。您可能会发现使用用户控件执行此操作比值得做的麻烦更多。

于 2009-06-23T15:54:38.257 回答
0

您可以动态创建控件(我主要是为 Sharepoint 站点完成的,偶尔通过在页面上重载 CreateChildControls 来完成),但是您从中获得的是一堆页面生命周期问题。

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

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

于 2009-06-23T17:01:22.093 回答
0

有几件事,也许有帮助:)...

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

  2. 太替换 LoginView 功能,这似乎是您向我描述的,服务器控件会更合适。特别是复合服务器控件

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

  4. 即使您可以使用 AJAX 动态加载,我还是建议您使用已经为您完成的东西。即构建一个Web 部件服务器控件

于 2009-06-23T17:54:00.547 回答