2009-05-24 6 views
1

J'ai lu les autres questions relatives aux pages maîtres, mais je n'ai pas vu celles-ci qui avaient la réponse que je recherchais, donc ...Accès à une page maître Commande à partir d'une classe distincte

J'ai une page maître. J'ai un contrôle (Contrôle A) sur la page maître. J'ai une certaine page de contenu que je veux désactiver (contrôle A) et activer (contrôle B).

Au lieu de le faire sur la page de contenu, je voudrais faire dans une classe utilitaire statique que j'utilise dans le site. La raison en est que nous avons 4 sections différentes sur le site Web qui utilisent 4 pages maîtres différentes. J'essaie de créer une méthode statique qui reçoit le nom de la page maître et du contrôle, puis permute les contrôles.

Je ne peux pas tout à fait comprendre comment référencer la page principale d'une classe séparée.

Répondre

2

Je ne pense pas que vous serez en mesure de le faire ... sans doute vous voulez quelque chose comme

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

Vous ne serez pas en mesure de le faire d'une classe statique car il n'y a pas de cas . Vous devez le trouver à l'extérieur et transmettre l'objet de page maître réel dans votre méthode statique.

Je ne vois pas vraiment pourquoi il est nécessaire de le faire dans une classe utilitaire que si elle est spécifique à une de vos pages de contenu. Si c'est générique à plusieurs de vos pages de contenu, puis envisager de créer une classe de BasePage que vos pages de contenu peuvent étendre ... par exemple

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 
    } 
} 
Questions connexes