2009-11-08 3 views
1

J'ai un composant WebPart Data View, sur une page d'édition personnalisée pour une liste. Je veux saisir l'URL actuelle et la passer à la page suivante, afin que je puisse revenir à l'écran d'édition. J'ai suivi ces instructions pour afficher l'URL de la page courante:Paramètre Sharepoint (MOSS) XSL - PageUrl n'étant pas trouvé

http://www.stevesofian.net/post/XSLT-Tip-Get-Current-Page-URL.aspx

intérieur de Designer Sharepoint, les écrans d'URL et semble bien. Cependant, dès que je le vois sur le site, il disparaît, il n'est pas affiché du tout.

J'ai créé une page de test aspx (pas de page maître, juste un aspx vide), et exactement le même résultat s'est produit. J'ai même essayé de tricher en créant une variable XSL, et en utilisant select = "$ PageUrl", fonctionne à nouveau dans Designer, pas sur le site. Comment puis-je récupérer l'URL?

Répondre

1

je reçois un 404 pour le premier site que vous avez cité, mais, si vous importez main.xsl dans votre feuille de style, vous devriez être en mesure d'obtenir l'adresse de la page en cours de concaténer $ HttpHost et $ pagePath :

<xsl:import href="/_layouts/xsl/main.xsl"/><!-- before any parameter or variable declarations --> 
... 
<xsl:value-of select="$HttpHost"/><xsl:value-of select="$PagePath"/> 
1

le problème ici est que le paramètre:

<xsl:param name="PageUrl" /> 

... ne fonctionne pas vraiment sur la page Web. Même si vous avez ajouté dans la ligne ParameterBinding (comme suggéré ci-dessus). Il ne apparaissent pour fonctionner dans SP Designer, mais lorsqu'il est affiché via le navigateur, le paramètre PageUrl renvoie une valeur vide ou Null. Le bon paramètre à utiliser pour retourner l'URL de la page en cours est celui de ServerVariable. Donc, mettre en place la ParemeterBinding comme ceci:

<ParameterBinding Name="PageAddr" Location="ServerVariable(URL)" DefaultValue=""/> 

Le PageAddr est juste un nom au hasard j'assignant au paramètre, qui ne sera pas confondu avec le PageUrl un. Appel suivant le paramètre dans la feuille de style, comme celui-ci:

<xsl:param name="PageAddr" /> 

Maintenant, vous pouvez appeler le paramètre partout dans votre code XSLT en utilisant PageAddr $ ...

Soyez averti ce paramètre ne fonctionne pas dans SP Designer , mais fonctionnera dans le navigateur.

+0

Il est possible d'ajouter des chevrons en indentant des lignes de code de 4 espaces ou bien d'utiliser des «backticks» pour le code en ligne. –