2009-08-19 6 views
0

마스터 페이지에서 대체 컨트롤을 사용하고 있습니다. 대체 사이트에서 사용자 컨트롤 콘텐츠 (내 웹 사이트의 로그인 영역과 관련 있음)를 렌더링하려고합니다. . 컨트롤을 렌더링 할 수 있도록 요청한 페이지에 대한 참조가 있어야합니다. 하지만 내 웹 사이트의 여러 페이지에 걸쳐 공유되므로 마스터 페이지 자체에서 컨트롤을 렌더링해야합니다. 이를 달성하기위한 지침은 무엇입니까?마스터 페이지 코드 숨김에서 ASP.NET 컨트롤 렌더링

TKS

+0

하지만, ASP.NET 상태에 대한 그 정보를 불평 유효하지 않거나 손상되었습니다. 다음과 같이 사용자 정의 컨트롤을로드했습니다. 페이지 pageHolder = 새 페이지(); UserControl viewControl = (UserControl) pageHolder.LoadControl ("MyControl.ascx"); pageHolder.Controls.Add (viewControl); StringWriter 출력 = new StringWriter(); HttpContext.Current.Server.Execute (pageHolder, output, false); return output.ToString(); – gsb

+0

페이지가 제공 될 때 pageHolder가 자동으로 렌더링되지 않습니까? 왜 당신이 먼저 렌더링하는지 모르겠습니다. 또한 사용자 정의 컨트롤에 폼 컨트롤이 있지만 그 주변에 '

'이 없으면 잘못된 상태에 대해 불만을 토로합니다. –

답변

0

그래서 당신은 코드 뒤에 MasterPage에서 사용자 컨트롤을 렌더링 및 마스터 페이지도의 대체 선수로 추가 하시겠습니까? 마스터를 사용하는 페이지에 대한 참조가 필요한 이유는 무엇입니까?

하여 사용 VB되어 있다고 가정하고, 나는 당신의 질문을 이해하고, 코드 뒤에 MasterPage이 시도 : 나는 사용자 정의 컨트롤을로드 할 수 있었다

Dim someControl As MyControl = CType((New Page()).LoadControl("~/Path/To/MyControl.ascx"), MyControl) 
mySubstitution.Controls.Add(someControl) 
+0

내가 추천하는 대체 컨트롤은 출력 된 캐시 된 페이지에 사용되는 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.substitution.aspx입니다. (: – gsb

관련 문제