2016-12-16 21 views
0

私はマスターページにパブリックプロパティを持っています。私はascxユーザコントロールからこのプロパティにアクセスしたいと思います。ascxコントロールのアクセスマスターページ

私のマスターページの名前はmaster_publicで、「マスター」という名前空間にあります。

だから私は書き込みを試してみました:

dim m=ctype(page.master,master.master_public) 
dim foobar=m.foobar 

インテリセンスがmaster.master_publicが存在しないことを言います。

マスターページから名前空間を削除しようとしました。まだ運がありません。

マスターページは「部分パブリッククラス」と宣言されています。しかし、この名前は認識されていないようです。

ここに回答するAccessing Master page control in ascx fileこれはちょうど...働くべきであることを暗示しているようです。マスターページをクラスタイプとしてアクセスできるようにするためにいくつかの属性や設定、または何かを含める必要はありますか?

+0

特定のマスターページに関連付けられないようにコントロールを再設計してください。たとえば、コントロールのコンストラクタに必要な値を注入します。 – CodeCaster

答えて

0

は、フォーム(.aspxの)の上に次の行を追加します。

<%@ MasterType TypeName="master.master_public" %> 

上記のディレクティブは、フォームにマスターページのパブリックメンバーを公開します。フォームからあなたのプロパティにアクセスするには、単に以下のように参照します。

CType(Me.Page.Master, master.master_public).YourProperty 

Me.Master.YourProperty 

したがって、フォームに追加したユーザーコントロールからマスターページのパブリックプロパティにアクセスするためには、単にマスターページオブジェクトをキャスト

関連する問題