我们有一组符合 dll 的用户控件。我们可以使用类名加载控件,例如 ASP.theusercontrol_ascx blah = new ASP.theusercontrol_ascx();
但是如果我们有动态数据并根据文件名(或控件名称)加载控件,
我们如何像 Page.LoadControl("TheURL/theusercontrol.ascx")
一样加载它们?
非常感谢...
最佳答案
确实没有正确的方法来做到这一点。 .ascx 文件并不意味着可以通过这种方式进行部署。代码已编译为 .dll,但 .ascx 文件中的实际标记尚未编译。即使您遵循 converting .ascx files to deployable controls 上的 Microsoft 官方文档,您将失去根据文件名调用 LoadControl 的能力,只是因为不再有标记文件。
有多个 hacks float 让您可以通过反射并将 .ascx 文件作为资源嵌入来完成此操作。
除此之外,如果您确实需要使用LoadControl(filename)
,则需要复制 .ascx 文件。
关于c# - 如何使用文件名从程序集中加载用户控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1912192/