2009-07-17 2 views
2

내 SharePoint 포털에 외부 웹 사이트를 표시해야하므로 PageViewerWebPart가 추가되었습니다. 그러나 URL에는 www.mywebsite.com?login=X&passwd=Y과 같은 로그인 매개 변수가 포함됩니다. PageViewer WebPart가 GET 매개 변수를 사용하여 URL을로드하지 않습니다.

은 그 같은 ContentLink PageViewer 속성에서 ASP 코드를 추가하려고 :

그것은 나에게이 오류 반환
<WebPartPages:PageViewerWebPart runat="server" ContentLink="<% ="URL" %>" ... /> 

: 서버 태그 <%을 포함 할 수 없습니다를 ... %> 지시.

GET 매개 변수로 URL을로드 할 수있는 다른 속성이 있습니까? 이 코드를 WebPartPage의 CodeBehind에 넣을 수 있습니까? 나는 그것을 실제로 잘못하고 있냐? ...?

도움이 될 것입니다!

티모테 마틴.

+0

Is는 오류를 발생시키는 셰어 포인트 또는 AsP입니까? –

+0

Sharepoint가이 오류를 잡아서 공통 셰어 포인트 스타일로 표시합니다. –

+0

URL을 동적으로 만들고 있습니까? 그렇다면 URL 작성을위한 코드는 어디에 두는 것입니까? – dariom

답변

3

사용자의 자격 정보를 URL에 넣어 두는 것이 좋지 않겠지 만 (아무도 페이지의 HTML 소스를보고이를 볼 수 있습니다.) 다음 작업을 원하는대로 수행 할 수 있습니다.

Microsoft.SharePoint.WebPartPages.WebPartPage을 상속하는 클래스로 새 클래스 라이브러리 프로젝트를 만듭니다. 예 :

namespace MyNameSpace.WebPagePages 
{ 
    public class MyWebPartPage : Microsoft.SharePoint.WebPartPages.WebPartPage 
    { 
     protected Microsoft.SharePoint.WebPartPages.PageViewerWebPart myPageViewerWebPart; 

     protected override void OnLoad(EventArgs e) 
     { 
      base.OnLoad(e); 

      // logic to create your URL 
      string url = "http://blah/blah"; 

      // set the URL 
      myPageViewerWebPart.ContentLink = url; 
     } 
    } 
} 

어셈블리에 서명하고 GAC에 배포해야합니다. 이 작업을 수행하는 데 권장되는 방법은 WSP (SharePoint Solution)를 사용하는 것입니다 (단,이 답변의 요점은 아닙니다).

는 이제 다음과 같이 웹 파트를 포함하는 ASPX 페이지를 수정해야합니다

  1. 변경 위 클래스의 정규화 된 형식 이름으로 <%@ Page %> 지침의 Inherits 속성. 이 같은 모양 : MyNameSpace.WebPagePages.MyWebPartPage, MyNameSpace.WebPagePages, 버전 = 1.0.0.0을, 문화 = 중립, PublicKeyToken = b538f318242c0b01
  2. 웹 파트에게의 이름과 일치하는 값을 갖는 ID 속성을 부여 코드 숨김 클래스의 웹 파트 이 예에서는 <WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart">

이렇게해야합니다. 이전에 해본 적이 없다면 클래스를 생성하고 GAC에 배포하는 것은 까다로운 문제 일 것입니다. 그러나 방법을 알면 쉽게 이해할 수 있습니다. VSeWSS, STSDEVWSPBuilder과 같은 도구 (먼저 배우고 다른 도구를 사용해보십시오)를 사용하면 WSP 파일 (SharePoint 솔루션)을 만들어이 작업을 수행하는 데 도움이됩니다.

+0

고마워요! 나는 그것을 지금하려고 노력할 것이다! =) –

0

레이아웃 페이지에 위 코드가있는 경우 예 : < %%>는 레이아웃 페이지에서 사용할 수 없습니다. 서버 측 코드에서 링크를 설정하는 것이 좋습니다. 그러나 여전히 < %%>를 사용하려면이 link을 작동시키는 방법을 참조하십시오.

+0

답변 해 주셔서 감사합니다. 이미 링크에 설명 된 코드를 넣으려고했지만 작동하지 않습니다. 웹 파트 (WebPart) 태그가 아닌 모든 곳에 <% %>을 넣을 수 있습니다. 문제는 서버 측 코드 파일을 찾지 못했기 때문입니다. 내 WebPartPage는 내 TeamSite의 라이브러리에 저장되어 있으며 첫 번째 태그는 CodeBehind 파일을 참조하지 않습니다. 관련하여 Timothée Martin입니다. –

관련 문제