2009-12-24 2 views
1

masterpage에 링크 된 폴더에 login.aspx 페이지가 있습니다. masterpage의 페이지로드 이벤트에서 일부 스타일을 추가했습니다. login.aspx로 리디렉션하면 masterpage의 pageload 이벤트에서 스타일을 가져올 수 없습니다. 내 login.aspx 루트 폴더에 있지만 루트 폴더 내부에있는 폴더에 있기 때문에 그 문제를 분석했다.은 마스터 페이지의 페이지로드에서 스타일을 해결할 수 없습니다.

login.aspx에서 masterpage의 pageload 이벤트를 어떻게 실행합니까?

답변

0

코드를 템플릿 화 된 페이지 (이 아닌이 아닌)로 옮길 때 코드가 작동하면 스타일 시트에 대한 상대 링크를 사용하는 것이 좋습니다.

루트 ("/stylesheet.css"형식)의 상대 URL을 사용하여 템플릿을 사용하지만 하위 디렉토리에서 페이지를 사용할 때 스타일 시트를 올바르게 해석 할 수 있도록하는 것이 좋습니다. .

다음과 같이 폴더 구조에서 모든 스타일 시트를 배치 할 수 있습니다
0

:

App_Themes/Style/mystylesheet.css 

그런 다음 콘텐츠 ASPX 페이지에서 바로 페이지의 지침에 Theme="Style"를 추가하고 ASP.NET마다 자동으로 페이지를 해결할 수 당신은 가지고있다 :-)

0

나는 당신이 CSS 스타일 시트에 대해서 이야기하고 있다고 가정하고, ASP.NET 스타일 (테마)에 대해서는 언급하지 않는다고 가정한다.

<link runat="server" rel="Stylesheet" href="~/scripts/common.css" 
    type="text/css" /> 

을 또는 당신은 당신의 Page_Load() 핸들러에서 프로그래밍 같은 태그를 삽입 할 수 있습니다 :이 경우

, 당신은 당신의 마스터 페이지에서 다음과 같은 태그를 사용 할 수 있습니다. 그러나이 경우 Head 컨트롤에 HtmlLink 컨트롤을 추가하는 것이 가장 좋습니다. 또는 컨트롤에 ID를 추가하고 Visible="True"을 사용하여 생성 된 태그에 표시할지 여부를 제어 할 수 있습니다.

+0

안녕 릭을 할 수 없다는 것입니다! :-) – IrishChieftain

+0

고마워요! 당신이 그것을 즐기고 있다는 것을 듣고 기쁘다. – RickNZ

0

문제는 새 ASP.NET 책을 구입하고 그것은 바위, 마크 업의 섹션은 마스터 페이지에 있습니다, 그래서 스타일 시트에 대한 참조가

Dim link As New HtmlLink 
link.Href = "LocationOfStyleSheet.css" 
link.Attributes.Add(HtmlTextWriterAttribute.Rel.ToString(), "stylesheet") 
Page.Header.Controls.Add(link) 
관련 문제