2009-06-05 7 views
0

Ok, cela peut être un peu bizarre, donc je vais commencer par expliquer ce que j'essaie de faire. J'ai plusieurs pages maîtres pour mon site, et elles héritent l'une de l'autre. Dans le second d'entre eux (4 au total) j'ai une image de fond. Voici le tour, je voudrais remplacer cette image de la page aspx finale. Je ne peux pas changer la position de cette image, elle doit être dans masterpage 2, car certaines pages utilisent cette même page comme masterpage. Une idée que j'ai eu était de créer un ContentPlaceHolder à côté de l'image et s'il y a des images là-dedans (vérifiez dans Page_Load) alors l'image principale serait cachée. Je l'ai fait avec une fonction récursive, qui trouve l'image en bouclant à travers les contrôles du ContentPlaceHolder. Lorsque je définis la propriété de visibilité sur false, rien ne se passe.Désactiver le contrôle dans .aspx de Masterpage conditionnellement

D'autres idées sur la façon dont cela pourrait être fait, ou pourquoi ce qui précède ne fonctionne pas?

Edit: Ce n'est pas de changer les articles dans les pages maîtres, plutôt l'inverse, que de la codebehind MasterPages creuser dans la page qui est affichée actuellement et voir si elle a des contrôles dans un ContentPlaceHolder spécifique.

Répondre

1

j'ai réussi à des contrôles d'accès sur une page maître comme ceci:

 Control control = Master.FindControl("ControlID"); 
     if (control is ControlType) 
     { 
      ControlType menu = control as ControlType; 
      menu.Visible = false; 
     } 

ne sais pas si cela va aider à résoudre votre problème Plus précisément.

0

Merci Stephen,

J'ai réussi comme la désactivation Treeview lors du chargement de la page principale avec defaultpage.aspx.I placé TreeView ContentPlaceHolder avec id = "cphtv" et id TreeView: TreeView1

Control control1 = Master.FindControl("cphtv"); 
if (control1 is ContentPlaceHolder) 
{ 
    Label5.Text = "ContentPlaceHolder found"; 
    Control tc = control1.FindControl("TreeView1"); 
    if (tc is TreeView) 
    { 
     tc.Visible = false; 
     Label6.Text = "tree view false"; 
    } 
    else{ 
     Label6.Text = "tree view control not found"; 

    } 

} 
else 
{ 
    Label6.Text = "not found"; 
} 
Questions connexes