我有一个班级图书馆。该库包含widget.ascx控件。如何从Web加载此webusercontrol。我知道“LoadControl”。但这不适用。
如何从库中加载web usercontrol?
2009.09.24
我的主要目标是创建基于插件的Web应用程序。每个插件都将是Web应用程序的小部件。
我需要从库
动态加载web usercontrol答案 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>