2008-11-18 8 views
2

J'ai plusieurs pages ASPX qui peuvent être ouverts soit normalement (plein écran dans le navigateur), ou sur demande à une autre page dans une fenêtre contextuelle (j'utilise Greybox, FWIW)Est-il possible de masquer le contenu d'une page maître asp.net, si la page est ouverte en tant que popup?

Si la page est ouverte dans une fenêtre contextuelle dans Greybox , Je voudrais ne pas afficher le contenu de la page maître (qui affiche les menus communs haut et à gauche, etc). Pour autant que je sache, il n'y a aucun moyen de connaître le côté serveur si la page est un popup, cela doit être détecté dans le javascript côté client (dans le cas de Greybox, en vérifiant window.parent.parent), et par conséquent, le contenu de la page maître doit également être caché via javascript.

Des idées sur la façon d'aborder cela?

Répondre

9

Créez une page maquette simplifiée pour le popup. Remplacer la méthode onPreInit (de la page réelle) et mettez le masterpage basé sur un argument querystring:

protected override void OnPreInit(EventArgs e) 
{ 
     base.OnPreInit(e); 

     if(Request["PopUp"] == "Y") 
     { 
      MasterPageFile = "~/MyPopUp.master"; 
     } 
} 
1

Bien que vous puissiez rendre conditionnellement les contrôles de navigation, etc., en fonction d'une chaîne de requête, passez la chaîne lorsque c'est une fenêtre contextuelle et si elle existe, ne rendez pas les contrôles. Il y a plusieurs façons de le faire, mais je pense que vous devriez avoir le serveur ne pas rendre les contrôles plutôt que les clients cachés.

P.S. Je n'ai pas entendu parler de Greybox, je ne peux donc pas vous donner d'informations spécifiques.

0

Je suis d'accord. C'est un problème côté serveur, pas quelque chose à mettre en forme du côté client. Il peut également être utile d'organiser vos pages Web où le contenu commun entre la fenêtre contextuelle et une page principale est conservé séparément et importé côté serveur dans la page qui contient l'entourage de la maquette. Les pages qui lient les pop-ups doivent utiliser le contenu du commentaire, pas l'environnement.

Beaucoup de façons de le faire (mais je suppose que personne ne veut savoir comment les extensions FrontPage aident). Essayez les inclusions côté serveur.

Questions connexes