2012-05-29 5 views
2

일반적으로 레이아웃 디렉토리에서 웹 사용자 정의 컨트롤을로드하려면이 작업을 수행하십시오. 내가하고 싶었던 이제 어떻게웹 파트에 aspx 페이지를로드하는 방법

protected override void CreateChildControls() 
{ 
    try 
    { 

     SPSecurity.RunWithElevatedPrivileges(delegate() 
     { 
      base.CreateChildControls(); 
      string strControlReference = "/_layouts/Controls/MyCustomControl.ascx"; 

      //instantiate the user control 
      MyCustomControl ucControl = (MyCustomControl)Page.LoadControl(strControlReference); 

      //add the control to webpart 
      this.Controls.Add(ucControl); 
     }); 
    } 
    catch (Exception ex) 
    { 
     Common.WriteLogEvent(ex); 
    } 

} 

내가 웹 양식 레이아웃 폴더 아래에 "_/레이아웃/페이지/MyPage.aspx"이 파일을 가지고, 내가이 파일을로드하는 대신 일반적인 ASCX 파일을로드하고 싶었다 웹 파트 페이지에 있습니다.

가능합니까? 어떻게하는지 알고 싶습니다. 고맙습니다.

답변

1

<IFRAME>을 웹 파트에 추가하고 페이지를로드 할 수 있습니다. "_/레이아웃/페이지/MyPage.aspx는"아래 인 경우,

var pageUrl = .....; // URL to your page 
var literal = new Literal(); 
literal.Text = string.Format("<iframe src='{0}'></iframe>", pageUrl); 
this.Controls.Add(literal); 
+0

가능한 경우 iframe을 사용하지 않는 솔루션을 찾고있었습니다. 하지만, 어떻게 든 제 문제 해결을위한 많은 도움이됩니다. 나는 내일까지 더 나은 대답을 기다릴 것이다. 만약 내가 더 좋은 대답을 찾지 못한다면 나는 이것을 답으로 표시 할 것이다 :) –

0

고객님의 의견을 알려하지 않습니다

또는 사용자 컨트롤을 추가 프로그래밍 IFRAME을 작성하고 같은 방법으로 추가 당신의 통제. 그렇다면 새 페이지에서 새 사용자 정의 컨트롤을 만든 다음 이전 페이지와 웹 파트에서 사용하십시오.

사용자 컨트롤에 페이지가 수행하는 모든 이벤트 (적절한 메서드를 재정의해야 함)가 없거나 페이지의 변수에 직접 액세스 할 수없는 경우 (사용자 컨트롤의 Page 속성 사용) 그러나 페이지가 너무 복잡하지 않으면 프로세스는 단지 "컴파일 및 변경"을 반복해야합니다.

+0

정말 미안하지만 어떤 해결책을 얻고 싶지는 모르겠다. –

관련 문제