Web ユーザー コントロールで親 (Web ページ) プロパティを使用するにはどうすればよいですか?
もう 1 つの質問:- Web ユーザー コントロールの共有クラス (つまり、App_Code フォルダー内のクラス) プロパティにアクセスするにはどうすればよいですか。
ありがとう
プロパティをパブリックとしてマークする必要があります。
var myVar = ((ParentPageClass)this.Page).YourProperty;
共有クラスにアクセスするには、そのクラスの名前空間を指定する必要があります。
YourProject.SomeNamespace.YourClass
または、.ascx.csファイルに名前空間を含める
using YourProject.SomeNamespace;
親ページからユーザーコントロールにパラメーターを渡す方が、よりクリーンなアプローチです。
asp.netユーザーコントロールで使用this.Page
してページを参照すると、そのコントロールが追加されたページが常に表示されます。
App_code フォルダーで宣言されたパブリック クラスは、任意のユーザー コントロールで問題なく直接アクセスできます。名前空間に注意し、クラスへのアクセスに問題がある場合はプロジェクトをコンパイルしてください。
できますが、それがクリーン/完全な OOP アプローチになるかどうかはわかりません。パブリック プロパティを設定するか、コントロールで使用する必要がある値を渡すページからユーザー コントロールのパブリック メソッドを呼び出すのはどうですか?
これは、コントロールをホストするページが一般的である必要があり、コントロールを含むページであるためです。
これが合わない場合は、コントロールの Page プロパティを取得してページのクラスにキャストすると、そのプロパティにアクセスできますが、これによりコントロールが汎用ではなく固有になり、コントロールは、その正確なタイプ/クラスのページでホストされます。