2009-06-05 7 views
0

Ok, das könnte ein bisschen komisch sein, also werde ich damit anfangen zu erklären, was ich versuche zu tun. Ich habe mehrere Masterpages für meine Site, und in denen erben sich gegenseitig. In der zweiten von ihnen (insgesamt 4) habe ich ein Hintergrundbild. Hier kommt der Trick, ich möchte dieses Bild von der letzten ASPX-Seite überschreiben. Ich kann die Position dieses Bildes nicht ändern, es muss auf der Hauptseite 2 sein, da einige Seiten genau diese Seite als Masterpage verwenden.Steuerung in ASPX von Masterpage bedingt deaktivieren

Eine Idee, die ich hatte, war, einen ContentPlaceHolder neben dem Bild zu erstellen, und wenn es irgendwelche Bilder darin gibt (Check in PageLoad), dann wäre das Hauptbild versteckt. Ich habe dies mit einer rekursiven Funktion getan, die das Bild durch das Durchlaufen der Steuerelemente von ContentPlaceHolder findet. Wenn ich jedoch die Sichtbarkeitseigenschaft auf "false" setze, passiert nichts.

Irgendwelche anderen Ideen, wie dies getan werden könnte, oder warum das Obige nicht funktioniert?

Edit: Es geht nicht um Elemente in den Masterseite, eher umgekehrt zu ändern, dass der Masterpages Code-Behind in der Seite gräbt, die aktuell angezeigt wird, und sehen, ob es Kontrollen in einem bestimmten Content hat.

Antwort

1

i Zugriffskontrollen auf einer Master-Seite wie diese haben es geschafft:

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

nicht sicher, ob das mit Ihrem Problem helfen speziell.

0

Danke Stephen,

ich wie deaktivieren Treeview verwaltet beim Laden Masterseite mit defaultpage.aspx.I treeview in Content mit = id gesetzt "cphtv" und treeview-ID: 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"; 
} 
Verwandte Themen