2009-08-02 4 views
3

삽입 된 사용자 정의 컨트롤에서 페이지의 헤드 부분을 어떻게 수정할 수 있습니까? .aspx 페이지의 머리 부분에서 컨트롤을 실행할 수 있지만 변경하고 싶지 않은 수많은 페이지가있는 기존 사이트가 있습니다. 그들 모두 공통점이있는 것은 menubar.ascx입니다. 그래서, 포함 된 페이지의 헤드 요소를 수정하기 위해 코드를 삽입 할 수 있지만 주사위는 수정할 수 없다는 것을 알았습니다. 구현하려고하는 코드는 다음과 같습니다. 그러나 Page.Header는 null입니다.사용자 정의 컨트롤의 페이지 헤드 수정

 
    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 

나는 PreRender와 Render 이벤트에 넣었지만 똑같은 것을 시도했다. Page.Parent.Page.Header도 null입니다. 내가하고 싶은 일을하는 더 좋은 방법이 있습니까? Utlimately 나는 기본 favicon과 다른 페이지 그룹에 favicon을 추가하려고합니다. 기본적으로 동일한 코드 기반에 두 개의 사이트가 있습니다.

내 첫 번째 게시물입니다.

TIA

답변

0

@ Program.X에서 언급했듯이 전체 검색/바꾸기가 필요할 수 있습니다. 그렇게하기 위해 한 걸음 더 나아가 마스터 페이지를 사용하고 싶을 수도 있지만, 시간 제한과 수정할 페이지의 수에 따라 달라집니다.

+0

이것은 매우 착수 예정이지만, 나는 그 개념을 좋아한다. – hewstone

4

당신은 UserControl을가 볼 수 있도록, 당신의 페이지 헤드 서버에서 실행해야 할 수 있습니다.

예 :

나는 일종의이 이미 모든 페이지에서 수행되지 않은 경우 지점을 패배 같아요
<head runat="server"> 

. 해결책을 찾기 위해 광범위한 RegEx 검색/대체가 구현 될 수 있습니다.

+0

고객이 마스터 페이지 솔루션의 시간을 예산으로 책정하지 않으려는 경우 이것이 내 백업 솔루션입니다. 맞습니다. regEx를 사용하여 간단한 찾기/바꾸기가이 문제를 해결할 것입니다. 감사! – hewstone

1

답장을 보내 주셔서 감사합니다. 최소한의 작업 솔루션을 요구하고 있다는 것을 알고 있지만, 코드 관리가 용이하도록 만들고 싶습니다. 내가 할 일은 모든 페이지의 템플릿으로 마스터 페이지를 만드는 것입니다 (@devstuff 제안과 같이). 그런 다음 기존 페이지를 약 50 페이지로 변경하여 마스터 페이지를 사용합니다. 그렇게하면 미래에 이런 것이 튀어 나오면 모든 것을 한 곳에서 쉽게 바꿀 수 있습니다.

도움 주셔서 감사합니다.

+1

3 페이지 이상으로 끝나는 모든 새 사이트에 마스터 페이지를 사용하는 것이 좋습니다. 나중에 대부분의 콘텐츠 페이지가 로고, 메뉴 등과 같은 프레이밍 관련 내용을 신경 쓰지 않기 때문에 나중에 많은 고통을 덜어줍니다. – devstuff

관련 문제