1

パネルやその他の GUI コントロールを持つユーザー コントロールがあります。これは、Web ページをレンダリングする際のユーザー コントロールと同じように使用されます。ただし、新しいインスタンスを使用し、使用したいビジネスロジックがあるため、レンダリングせずにコードでのみ使用する必要があります。ただし、GUI コントロールがコードで参照されると、実行中にオブジェクト null 参照エラーが発生します。次に例を示します。pnlSomePanel.Visible = true;

ユーザー コントロールをコードでのみ (レンダリングせずに) 使用するにはどうすればよいですか? .NET 4.0 を使用しています。

4

2 に答える 2

0

技術的には、コード ビハインド クラスの新しいインスタンスを作成できるはずです (Web サイトではなく、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 に答える