2009-08-02 3 views
3

Wie kann ich den Kopfbereich einer Seite in einem eingebetteten Benutzersteuerelement ändern? Ich weiß, dass ich das Steuerelement in dem Kopfabschnitt der ASPX-Seite ausführen kann, aber ich habe eine vorhandene Website mit zahlreichen Seiten, die ich nicht ändern möchte. Allen gemeinsam ist die menubar.ascx. Also dachte ich, ich könnte den Code dort einfügen, um das Kopfelement der enthaltenden Seite zu ändern, aber keine Würfel. Der Code, den ich zu implementieren versuche, sieht so aus, aber der Page.Header ist null.Ändern des Seitenkopfs in der Benutzersteuerung

 
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Dim favicon As New HtmlLink 
     favicon.Attributes.Add("REL", "SHORTCUT ICON") 
     favicon.Attributes.Add("HREF", "images/bh_favicon.ico") 
     Page.Header.Controls.Add(favicon) 
    End Sub 

Ich habe versucht, es in den PreRender und die Render-Ereignisse, aber die gleiche Sache. Der Page.Parent.Page.Header ist ebenfalls null. Gibt es einen besseren Weg, um das zu tun, was ich tun möchte? Ich möchte ein Favicon zu einer Gruppe von Seiten hinzufügen, die sich von dem Standardfavicon unterscheidet. Grundsätzlich habe ich zwei Seiten in der gleichen Code-Basis.

Sei nett, das ist mein erster Beitrag.

TIA

Antwort

0

Wie von @ Program.X erwähnt, benötigen Sie möglicherweise eine vollständige Suche/ersetzen. Wenn Sie das tun, sollten Sie einen Schritt weiter gehen und eine Masterseite verwenden, aber es hängt wirklich von Ihren Zeitbeschränkungen ab und davon, wie viele Seiten Sie ändern müssen.

+0

Das wird ziemlich das Unterfangen sein, aber ich mag das Konzept. – hewstone

4

Möglicherweise müssen Sie Ihren Seitenkopf lief auf dem Server machen, damit das Usercontrol sie sehen kann.

zB:

<head runat="server"> 

Was ich irgendwie denke, der Punkt besiegt, wenn dies nicht bereits auf allen Seiten gemacht wird. Vielleicht wäre eine Lösung, die RegEx suchen/ersetzen würde, um dies zu implementieren.

+0

Dies ist meine Backup-Lösung, wenn der Kunde die Zeit für die Masterseitenlösung nicht planen möchte. Sie haben Recht, ein einfacher Fund/Ersatz mit einem regEx würde dies beheben. Vielen Dank! – hewstone

1

Vielen Dank für Ihre Antworten. Ich weiß, dass ich nach der geringsten Menge an Arbeitslösung gefragt habe, aber ich möchte den Code leicht für mich verwalten lassen. Ich denke, ich werde eine Masterseite als Vorlage für alle Seiten erstellen (wie @devstuff vorgeschlagen). Dann werde ich die vorhandenen Seiten, etwa 50 Seiten, ändern, um die Masterseite zu verwenden. Wenn so etwas in der Zukunft auftaucht, kann ich leicht alles an einem Ort ändern.

Danke für Ihre Hilfe!

+1

Ich würde definitiv die Verwendung von Masterseiten für alle neuen Websites empfehlen, die mit mehr als etwa 3 Seiten enden. Spart eine Menge Schmerzen später, da die meisten Content-Seiten sich nicht um die Gestaltung von Inhalten wie Logos, Menüs usw. kümmern. – devstuff

Verwandte Themen