2009-05-24 14 views
1

マスターページを扱う他の質問を読んでいましたが、私が探していた答えが見当たりませんでした。別のクラスからマスターページコントロールへのアクセス

私はマスターページを持っています。マスターページにコントロール(コントロールA)があります。私は無効にしたい(コントロールA)と有効にする(コントロールB)特定のコンテンツページを持っています。

コンテンツページでこれを行うのではなく、私がサイトで使用している静的ユーティリティクラスでこれを行いたいと思います。これは、4つの異なるマスターページを使用する4つのセクションがウェブサイトにあるからです。私はマスターページとコントロールの名前を受け取り、コントロールをスワップする静的メソッドを作成しようとしています。

マスターページを別のクラスから参照する方法がわかりません。

答えて

2

私はあなたが...おそらくあなたは、静的クラスからインスタンスが存在しないため、それを行うことができなくなります

public static void DoWork (string masterPageName) 
{ 
    //Code to find instance of masterpage... 
} 

ような何かをしたいことを行うことができるでしょうとは思いません。あなたはそれを外に見つけて、実際のマスターページオブジェクトを静的メソッドに渡す必要があります。

あなたのコンテンツページのいずれかに固有のものであるにもかかわらず、ユーティリティクラスでこれを行う必要があるのは本当にわかりません。多くのコンテンツページに共通する場合は、コンテンツページが拡張できるbasePageクラスを作成することを検討してください。

public class BasePage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(this.Master != null) 
      if(this.Master.FindControl("Control A") != null) 
       //Disable Control A 
       //Enabled Control B 
    } 
} 
関連する問題