2011-06-18 16 views

答えて

5

Page.Master(存在する場合)は、基本となるマスターページを公開します。あなたのマスターページは、あなたがこのようなコントロールとプロパティを見つけることができるよりも固定されている事例として

14
var master = (this.Page.Master as SiteMaster); 
if (master != null) 
{ 
    var myProperty = master.MyProperty; 
} 
+0

ユーザーコントロール用の['MasterType'指示文(http://msdn.microsoft.com/en-us/library/ms228274.aspx)はありませんか? –

+1

タイプまたは名前空間SiterMasterが見つかりません – Johan

+4

@Johan、はい、これはあなたのマスターページの実際のタイプです。たとえば、Site.Masterを使用してSiteMasterを使用している場合、FooBar.Matserを使用してFooBarMasterを使用すると、... –

1
this.NamingContainer.Page.Master.Property; 
-1

:MasterPageName.cs

public TextBox MyProperty 
{ 
    get { return txtmaster; } 
} 

//上の

MasterPageName mp =(MasterPageName) Page.Master; 
    //find a control 
    Response.Write((mp.FindControl("txtmaster") as TextBox).Text); 
    //find a property 
    Response.Write(mp.MyProperty.Text); 

//マスターページ名。マスター

<asp:TextBox runat="server" ID="txtmaster"></asp:TextBox>

+0

-1:コントロールにアクセスすることについて何も言わなかった –

0

マスターページがユーザーコントロールから次に、このよう

public partial class MasterPage : System.Web.UI.MasterPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     // 
    } 

    // the property which I would like to access from user control 
    public String MyName 
    { 
     get 
     { 
      return "Nazmul"; 
     } 
    } 
} 

ある場合は、この方法によって "MYNAME" にアクセスすることができ、私は理解されるように

MasterPage m = Page.Master as MasterPage; 
Type t = m.GetType(); 

System.Reflection.PropertyInfo pi = t.GetProperty("MyName"); 

Response.Write(pi.GetValue(m,null)); //return "Nazmul" 
2

同じくらい:

  1. マスターページ(MasterPage.master)
  2. ウェブページ(Default.aspx)マスターページを使用しています。
  3. ウェブページにはユーザーコントロールがあります。
  4. このユーザーコントロールからMasterPageのプロパティにアクセスします。

今、あなたはUserControlからこのプロパティにアクセスしたい

public string Name{ get{return "ABC";} } 

のような名前と呼ばれる性質があるマスターページに言うことができます。

この目的のために、まずマスタページをこのようなユーザコントロールに登録する必要があります。

<%@ Register TagPrefix="mp" TagName="MyMP" Src="~/MasterPage.master" %> 

このユーザーコントロールが存在するページの参照を取得してから、そのページのマスターページを取得する必要があります。コードは次のようになります。

System.Web.UI.Page page = (System.Web.UI.Page)this.Page; 
MasterPage1 mp1 = (MasterPage1)page.Master; 

lbl1.Text= mp1.Name; 
+1

Masterpage1とは何ですか – shomaail

+0

ユーザーコントロールに表示される必要があるマスターページ –

+0

私の場合は登録が変更されず、MasterControllerはuserControlコードビハインドでまだ定義されていません – DestyNova

関連する問題