C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: [ASP.NET2.0] マスターページネストに関して


(過去ログ 37 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■19389 / inTopicNo.1)  [ASP.NET2.0] マスターページネストに関して
  
□投稿者/ ま (39回)-(2008/05/22(Thu) 17:31:17)

分類:[ASP.NET (VB)] 

マスターページで質問です。
ASP.NET 2005 Express Edition
SqlServer2005 Express Edition


[TopMasterPage.Master]
<asp:Label ID="LabelMessage" runat="server" Text="" CssClass="cssMessage"></asp:Label>

[TopMasterPage.master.vb] 
public class TopMasterPage : Inherits Web.UI.MasterPage
   Implements IMessage

   private sub PageLoad(o as object, e as eventargs) handles me.load
      context.items.item("TOP") = me
   end sub

    public writeonly property Message() as string implements IMessage.Message
       set(s as string)
          LabelMessage = s
       end set
    end property

end class

[NestedMasterPage.master.vb]
public class NestedMasterPage : Inherits Web.UI.MasterPage
    public writeonly property Message() as string
       set(s as string)
          master.Message = s
       end set
    end property
     
end class

[ContentPage.aspx.vb]
public class ContentPage : Inherits Web.UI.Page

   private sub PageLoad(o as object, e as eventargs) handles me.load
      dim top as Object = context.items.item("TOP")
      if top is nothing then
          master.Message = "OK"
      else
          CType(top, IMessage).Message = "OKOK"
      end if
   end sub
end class

TopMasterPage->NestedMasterPage->ContentPage
という関係でマスターページがネストしていますが、ContentPage で TopMasterPage の
Message にアクセスしたいのですが、上記のように、NestedMasterPage のメソッドなり
プロパティ経由で間接参照するか、Context に TopMasterPage のインスタンスをセット
して インターフェースで参照する以外に無いでしょうか?

他にもっと簡単な方法ありましたら教えてください。

NestedMasterPage の ASPX 先頭にディレクティブ
<%@ MasterType VirtualPath="~/TopMasterPage.master" %>
を、
ContentPage の ASPX 先頭にディレクティブ
<%@ MasterType VirtualPath="~/NestedMasterPage.master" %>
を
追加しています。

MasterType は1ファイルに1つのみ宣言可能で、直属の親子関係にのみ適用可能に
なっているようです。NestedMasterPage に MasterType TopMasterPage を指定する
ことは出来ない(エラーが出たので出来ないと判断しましたが・・・)ようです。

宜しくお願いします。






引用返信 編集キー/
■19390 / inTopicNo.2)  Re[1]: [ASP.NET2.0] マスターページネストに関して
□投稿者/ はつね (734回)-(2008/05/22(Thu) 17:36:09)
はつね さんの Web サイト
No19389 (ま さん) に返信
> MasterType は1ファイルに1つのみ宣言可能で、直属の親子関係にのみ適用可能に
> なっているようです。NestedMasterPage に MasterType TopMasterPage を指定する
> ことは出来ない(エラーが出たので出来ないと判断しましたが・・・)ようです。

http://www.microsoft.com/japan/msdn/thisweek/step7/aspnet/MasterPage/masterpage3.aspx

マスタページA→マスタページB→コンテンツ
とした場合、コンテンツからマスタページAを直接アクセスできません。
マスターページBにマスターページAを操作するためのプロパティやメソッドを定義して、
そいつをコンテンツページから操作してあげるようなイメージになります。

引用返信 編集キー/
■19391 / inTopicNo.3)  Re[2]: [ASP.NET2.0] マスターページネストに関して
□投稿者/ ま (40回)-(2008/05/22(Thu) 17:51:00)
No19390 (はつね さん) に返信
> マスターページBにマスターページAを操作するためのプロパティやメソッドを定義して、
> そいつをコンテンツページから操作してあげるようなイメージになります。
>

了解しました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -