2009-07-17 6 views
2

J'ai besoin d'afficher un site Web externe dans mon portail SharePoint. J'ai donc ajouté un élément PageViewerWebPart. Mais l'URL inclut des paramètres de connexion tels que www.mywebsite.com?login=X&passwd=Y.PageViewer WebPart ne chargera pas l'URL avec les paramètres GET

J'ai essayé d'ajouter du code ASP à la propriété ContentLink PageViewer comme ça:

<WebPartPages:PageViewerWebPart runat="server" ContentLink="<% ="URL" %>" ... /> 

Il me renvoie cette erreur: les balises de serveur ne peuvent pas contenir <% ...%> instructions.

Existe-t-il d'autres propriétés qui permettent de charger l'URL avec les paramètres GET? Puis-je mettre ce code dans le CodeBehind de mon WebPartPage? Est-ce que je le fais vraiment mal ...?

Toute aide sera très appréciée!

Timothée Martin.

+0

Est-ce que sharepoint renvoie l'erreur, ou AsP? –

+0

Sharepoint attrape cette erreur et l'affiche avec le style de partage commun ... –

+0

Créez-vous l'URL dynamiquement? Si vous êtes, où mettez-vous le code pour créer l'URL? – dariom

Répondre

3

Même si je pense qu'il est une mauvaise idée de mettre les informations d'identification d'un utilisateur dans une URL (tout le monde pourra le voir en regardant la source HTML de la page), voici comment vous pouvez accomplir ce que vous voulez faire:

Créez un nouveau projet de bibliothèque de classes avec une classe qui hérite de Microsoft.SharePoint.WebPartPages.WebPartPage. Quelque chose comme:

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; 
     } 
    } 
} 

Vous devrez signer l'assembly et le déployer dans le GAC. L'utilisation de SharePoint Solution (WSP) est la méthode recommandée pour ce faire (mais pas le but de cette réponse).

Vous devez maintenant modifier la page ASPX contenant votre partie Web comme suit:

  1. Modifier l'attribut Inherits de la directive <%@ Page %> au nom complet du type de la classe ci-dessus. Il ressemblera à quelque chose comme: MyNameSpace.WebPagePages.MyWebPartPage, MyNameSpace.WebPagePages, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = b538f318242c0b01
  2. Donnez la partie Web un attribut ID avec une valeur qui correspond au nom de la partie Web dans la classe code-behind. Dans cet exemple: <WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart">

Cela devrait le faire. Si vous ne l'avez pas déjà fait, la création de la classe et son déploiement dans le GAC seront des étapes difficiles, mais elles sont faciles quand vous savez comment. Des outils comme VSeWSS, STSDEV et WSPBuilder (apprenez-en un d'abord puis essayez les autres) vous aideront à réaliser ceci en créant des fichiers WSP (SharePoint Solutions) - quelque chose dont je vous recommande vivement de profiter.

+0

Merci beaucoup! Je vais essayer de le faire maintenant! =) –

0

Si le code ci-dessus est présent dans la page de mise en page, alors oui les < %%> ne sont pas autorisés dans les pages de mise en page. Je vous recommande de définir le lien dans le code côté serveur. Mais si vous voulez toujours utiliser le < %%> référez-vous à ce link pour savoir comment le faire fonctionner.

+0

Merci pour votre réponse. J'ai déjà essayé de mettre le code décrit dans le lien mais cela ne fonctionne pas. Il vous permet de mettre le <% %> partout mais pas dans les balises WebPart. Le problème est que je ne trouve pas le fichier de code côté serveur. Mon WebPartPage est stocké dans une bibliothèque sur mon TeamSite et je le premier tag ne fait pas référence à un fichier CodeBehind. Cordialement, Timothée Martin. –

Questions connexes