Asp.net 如何从类库加载webusercontrol

Asp.net 如何从类库加载webusercontrol,asp.net,assemblies,user-controls,Asp.net,Assemblies,User Controls,我有一个类库。此库包含widget.ascx控件。如何从web加载此webusercontrol。我知道“负荷控制”。但这并不适用 如何从库中加载web usercontrol 2009.09.24 我的主要目标是创建基于插件的web应用程序。每个插件都是web应用程序的小部件 我需要从库动态加载web usercontrol您需要将库的引用添加到web项目中 然后像使用任何其他控件一样,通过编程或@Register指令实例化它 善良 Dan除了将DLL添加到项目引用之外,还需要注册控件。您可以

我有一个类库。此库包含widget.ascx控件。如何从web加载此webusercontrol。我知道“负荷控制”。但这并不适用

如何从库中加载web usercontrol

2009.09.24

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


我需要从库动态加载web usercontrol

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

然后像使用任何其他控件一样,通过编程或@Register指令实例化它

善良


Dan

除了将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" />


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

如他所说,添加对类库程序集的引用,在代码中,在名称空间的顶部添加一个Using/Include语句,然后像使用其他语句一样使用它。初始化完对象后,可以使用Controls.add方法将其添加到页面中。我将widget.ascx从web应用程序复制到类库中。