2009-07-17 5 views
2

SharePointポータルに外部Webサイトを表示して、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に入れることはできますか? 私は実際に間違っているのですか?

非常に助かりました!

TimothéeMartin。

+0

Isはエラーを投げるSharepointかAsPですか? –

+0

Sharepointはこのエラーをキャッチし、共通の共有ポイントスタイルで表示します... –

+0

URLを動的に作成していますか?あなたがいる場合は、URLを作成するコードはどこに置いていますか? – dariom

答えて

3

私はそれが(誰でもページのHTMLソースを表示することによって、これを見ることができます)URLにユーザーの資格情報を置くことは悪いアイデアだと思いますが、ここにあなたが何をしたい達成できた方法は次のとおりです。

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に展開する必要があります。これを行うには、SharePoint Solution(WSP)を使用することをお勧めします(この回答の要点はありません)。

あなたは今、次のようにWebパーツを含むASPXページを変更する必要があります。

  1. 変更上記のクラスの完全修飾型名に<%@ Page %>ディレクティブのInherits属性を。それは次のようになります。MyNameSpace.WebPagePages.MyWebPartPage、MyNameSpace.WebPagePages、バージョン= 1.0.0.0を、カルチャニュートラル、PublicKeyToken = = b538f318242c0b01
  2. Webパーツにの名前と一致する値を持つID属性を与えますコードビハインドクラスのWebパーツこの例では:<WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart">

それはそれを行う必要があります。これまでにやっていないのであれば、クラスを作成してGACにデプロイするのは面倒なことになりますが、どのようにすれば簡単か分かります。 VSeWSSSTSDEVWSPBuilderのようなツール(最初に習得してから試してみてください)は、WSPファイル(SharePointソリューション)を作成することでこれを達成するのに役立ちます。

+0

ありがとう!私は今それをやろうとします! =) –

0

上記のコードがレイアウトページにある場合、< %%>はレイアウトページでは許可されていません。サーバーサイドコードでリンクを設定することをお勧めします。しかし、まだ< %%>を使用したい場合は、linkを参照してください。

+0

あなたの答えをありがとう。 リンクに記載されているコードをすでに入力しようとしましたが、機能しません。これにより、<% %>をどこにでも置くことはできますが、WebPartタグには入れることはできません。 問題は、サーバー側のコードファイルが見つからないことです。私のWebPartPageは私のTeamSite上のライブラリに保存されています。最初のタグはCodeBehindファイルを参照していません。 に関して、TimothéeMartin。 –