Sharepoint(MOSS)XSL - 未找到/显示PageUrl参数

时间:2009-11-08 21:50:22

标签: sharepoint parameters xslt

我在列表的自定义编辑页面上有一个数据视图Web部件。我想获取当前URL并将其传递到下一页,因此我可以返回编辑屏幕。 我已按照这些说明显示当前页面网址:

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

在Sharepoint Designer内部,Url显示并且看起来很好。 HOwever,一旦我通过网站查看它就会丢失,它根本就没有显示出来。

我创建了一个测试aspx页面(没有母版页,只是一个空白的aspx),并且发生了完全相同的结果。 我甚至尝试通过创建一个XSL变量来作弊,并使用select =“$ PageUrl”,再次在Designer中工作,而不是在网站上。 如何检索URL?

2 个答案:

答案 0 :(得分:1)

我为您引用的第一个网站获得了404,但是,如果您在样式表中导入 main.xsl ,则应该能够通过连接 $ HttpHost来获取当前页面的地址 $ 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 :(得分:1)

这里的问题是参数:

<xsl:param name="PageUrl" />

...实际上并不适用于网页。即使您确实添加了ParameterBinding行(如上所述)。它出现在SP Designer中工作,但是当通过浏览器查看时,PageUrl参数返回空值或Null值。用于返回当前页面URL的正确参数是ServerVariable参数。所以像这样设置ParemeterBinding:

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

PageAddr只是我分配给参数的随机名称,不会与PageUrl混淆。接下来调用StyleSheet中的Parameter,如下所示:

<xsl:param name="PageAddr" />

现在,您可以使用$ PageAddr ...

在XSLT代码中的任何位置调用参数

警告此参数在SP Designer中不起作用,但可在浏览器中使用。