2013-06-27 1 views
0

문제점이 하나 있습니다. 내 응용 프로그램에서 마스터 페이지를 설정하고 싶습니다. aspx 페이지가 너무 많아서 everypage로 이동하여 asp : content 태그를 추가하고 싶지 않습니다. 나는 내 페이지를 들여다 볼 수있는 동적 인 방법을 원한다. HTML/다른 ASP 컨트롤을 복사하고 그것을 동적으로 생성 된 컨텐트 템플릿에 추가한다. 동적으로 콘텐츠 템플릿을 만드는 방법을 알고 있습니다. 하지만 aspx 페이지의 HTML을 복사하여 콘텐츠 템플릿에 추가 할 수 있는지 여부를 모릅니다.동적으로 페이지에 asp : content를 추가하십시오.

예를 들어, aspx 페이지의 코드 숨김에서 page_PreInit에 다음 코드를 추가하려고합니다.

base.AddContentTemplate("WebHeaderPH", new CompiledTemplateBuilder(new BuildTemplateMethod(this.getControl))); 

하는 getControl 내가 동적 콘텐츠 템플릿을 추가하고, (. HTML, 텍스트 나 사용자 정의 컨트롤을로드 할 수 있습니다) 모든 것을 포함하는 방법입니다

이 방법.

내 aspx 페이지 내용 다음 코드.

<span id="someid" runat="server">blah blah...</span> 

내가 원하는 것은 id에 의해이 span 태그를 얻고 asp : content로 감싸는 것입니다. 또는 상기의 getControl 메소드에있을 가능성이 있습니다.

하지만 페이지 던져 다음과 같은 오류에이 기간을 가하고,

콘텐츠 컨트롤은 콘텐츠 페이지 나 마스터 페이지를 참조하는 중첩 된 마스터 페이지에서 최상위 컨트롤해야합니다.

asp : content 템플릿을 페이지에 삽입해야합니다. 하지만 이렇게하면 contentTemplate을 동적으로 생성 할 때 동적으로 contentTemplate을 만들거나 전체 페이지를 비워 둘 필요가 없습니다. 두 경우 모두, 나는 모든 aspx 페이지를 편집해야합니다.

페이지의 html을 가져 와서 contentTemplate에 추가 할 필요없이 aspx 페이지를 편집 할 수있는 방법이 있습니까?

+0

나는 그렇게 생각하지 않는다. 적어도 당신의 aspx 파일을 편집 할 스크립트를 작성하지 않아도된다. 서버 코드로이 작업을 수행하려는 시도는 어쨌든 바람직하지 않습니다. 페이지가 너무 많아서 마스터 페이지를 사용하지 않는다면 디자인 실수가됩니다. 다른 나쁜 아이디어를 사용하여 수정해야합니다. –

+0

이 질문을 쓰는 데 걸리는 시간에 수동으로 수십 개의 파일을 변환 할 수있었습니다. 수백 또는 수천 페이지가있는 경우 사용자 지정 변환 도구를 작성하는 것을 고려해보십시오. 그러나 런타임에 페이지를 변환하지 마십시오. – pseudocoder

+0

좋습니다. 감사. 나는 모든 나의 aspx 페이지를 수동으로 수정할 것이다. 이전에는 1.1 .net 프레임 워크에 있었기 때문에 마스터 페이지 개념이 없었습니다. 우리는 4.0 버전으로 변환했습니다. – Roshni

답변

0

수동으로 단계별로 이동해야합니다. 그것은 실제로 설계 실수입니다. 그러나 오랫동안 그것들을 모두 바꿀 수는 없습니다. 불행히도 같은 실수를 저질렀고 페이지를 수동으로 편집하여 수정했습니다.

+0

당신이 내 첫 번째 대답입니다. 나는 문자 그대로 여기에서 웃고있다! 고맙습니다! – LTKD