1

我有一个用户控件,其中包含面板和其他 gui 控件。它在呈现网页时与任何用户控件一样使用。但是,我需要使用它的新实例并仅在代码中使用它而不渲染它,因为它具有我想要使用的业务逻辑。但是,只要在代码中引用 gui 控件,它就会在运行期间出现对象空引用错误,例如:pnlSomePanel.Visible = true;

如何仅在代码中使用用户控件(不渲染)?使用 .NET 4.0。

4

2 回答 2

0

从技术上讲,您应该能够创建代码隐藏类的新实例(假设是 asp.net Web 应用程序而不是网站)。

但是,如果该用户控件中嵌入了业务逻辑,我建议将其移动到单独的类中,或者将业务逻辑公开为具有适当参数集的静态方法。

于 2012-08-03T20:20:28.703 回答
0

这个怎么样...

在页面上添加对您的模块的引用。

<%@ Reference Control="~/modules/MyModule.ascx" %>

然后,您可以使用模块的类名在后面的代码中创建该模块的实例。

modules_MyModule ctrl = LoadControl("~/modules/MyModule.ascx") as modules_MyModule;
ctrl.SomeMethod();

下一步是其添加到父容器中,但如果您跳过该步骤,您应该在后面的代码中仍然有一个功能对象。不完全确定它是否会起作用,但理论上应该。

于 2012-08-03T22:12:46.800 回答