マスターページ
作成方法
* ソリューションエクスプローラのプロジェクトを右クリックし、[追加]-[新しい項目]-[マスタページ](拡張子:.Master)を追加できる
使用方法
[1] ソリューションエクスプローラのプロジェクトを右クリックし、[追加]-[新しい項目]-[マスタページを使用したWebフォーム]を選択 [2] マスタページを選択するダイアログで該当するマスターページを選ぶ →マスターページを取り込んだファイルが作成できる
補足
* マスタページは、入れ子にすることも可能
マスターページあれこれ
マスターページのプロパティへのアクセス
準備
[1] アクセス用にpublicのプロパティをマスターファイルに追加する
組み込む
[1] コンテンツページ(*.aspx)に、以下の1行を追加する <%@ MasterType VirtualPath="~/【マスターファイル名】.master" %> [2] 準備[1]で追加したプロパティを使って、マスターファイルを操作する
サンプル
Site1.Master
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site1.master.vb" Inherits="WebApplication3.Site1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="">http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>
Site1.Master.vb
Public Class Site1 Inherits System.Web.UI.MasterPage Public WriteOnly Property Label1Text() As String Set(ByVal value As String) Me.Label1.Text = value End Set End Property Public Property Label1TextVisible() As Boolean Get Return Me.Label1.Visible End Get Set(ByVal value As Boolean) Me.Label1.Visible = value End Set End Property End Class
WebForm1.aspx
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %> <%@ MasterType VirtualPath="~/Site1.Master" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" /> <asp:Button ID="Button2" runat="server" Text="Button" /> </asp:Content>
WebForm1.aspx.vb
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Master.Label1Text = Me.TextBox1.Text End Sub Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Master.Label1TextVisible = Not Master.Label1TextVisible End Sub
参考文献
http://www.atmarkit.co.jp/fdotnet/dotnettips/469aspmasterpage2/aspmasterpage2.htmlhttp://msdn.microsoft.com/ja-JP/library/c8y19k6h.aspx
http://csharp.yaminabe.info/2006/08/aspnet.html