我有一个用户控件,其中包含面板和其他 gui 控件。它在呈现网页时与任何用户控件一样使用。但是,我需要使用它的新实例并仅在代码中使用它而不渲染它,因为它具有我想要使用的业务逻辑。但是,只要在代码中引用 gui 控件,它就会在运行期间出现对象空引用错误,例如:pnlSomePanel.Visible = true;
如何仅在代码中使用用户控件(不渲染)?使用 .NET 4.0。
我有一个用户控件,其中包含面板和其他 gui 控件。它在呈现网页时与任何用户控件一样使用。但是,我需要使用它的新实例并仅在代码中使用它而不渲染它,因为它具有我想要使用的业务逻辑。但是,只要在代码中引用 gui 控件,它就会在运行期间出现对象空引用错误,例如:pnlSomePanel.Visible = true;
如何仅在代码中使用用户控件(不渲染)?使用 .NET 4.0。
从技术上讲,您应该能够创建代码隐藏类的新实例(假设是 asp.net Web 应用程序而不是网站)。
但是,如果该用户控件中嵌入了业务逻辑,我建议将其移动到单独的类中,或者将业务逻辑公开为具有适当参数集的静态方法。
这个怎么样...
在页面上添加对您的模块的引用。
<%@ Reference Control="~/modules/MyModule.ascx" %>
然后,您可以使用模块的类名在后面的代码中创建该模块的实例。
modules_MyModule ctrl = LoadControl("~/modules/MyModule.ascx") as modules_MyModule;
ctrl.SomeMethod();
下一步是将其添加到父容器中,但如果您跳过该步骤,您应该在后面的代码中仍然有一个功能对象。不完全确定它是否会起作用,但理论上应该。