如何从类库加载Web用户控件

时间:2009-09-23 18:37:24

标签: asp.net assemblies user-controls

我有一个班级图书馆。该库包含widget.ascx控件。如何从Web加载此webusercontrol。我知道“LoadControl”。但这不适用。

如何从库中加载web usercontrol?

2009.09.24

我的主要目标是创建基于插件的Web应用程序。每个插件都将是Web应用程序的小部件。

我需要从库

动态加载web usercontrol

3 个答案:

答案 0 :(得分:0)

您需要将库的引用添加到您的Web项目中。

然后以任何其他控件(以编程方式或@Register指令)实例化它。

善,

答案 1 :(得分:0)

除了显然将DLL添加到项目引用之外,还需要注册该控件。您可以在将使用该控件的每个页面上执行此操作,但我通常更喜欢在web.config中执行此操作。作为一个简单的例子,这是我用来在我的应用程序中注册Infragistics UltraWebGrid控件的行。

<pages>
   <controls>
      <add tagPrefix="ig" namespace="Infragistics.WebUI.UltraWebGrid" assembly="Infragistics35.WebUI.UltraWebGrid.v8.2, Version=8.2.20082.1000, Culture=neutral, PublicKeyToken=7DD5C3163F2CD0CB"/>
   </controls>
</pages>

TagPrefix有点像页面内的命名空间,所以如果我有一堆控件,我从一个DLL导入,他们可能都有相同的TagPrefix。在页面中,我只是按如下方式引用我的控件:

<ig:UltraWebGrid runat="server" SetSomeOtherPropertiesToo="blah" />

答案 2 :(得分:0)

我不确定.ascx文件是如何添加到您的类库中的。通常,使用LoadControl加载用户控件,这需要现有文件。如果用户控件在类库中编译为嵌入式资源,则可以使用GetManifestResourceStream()读取用户控件的内容,然后使用ParseControl从使用GetManifestResourceStream读取的字符串创建控件。 / p>