2009-11-08 46 views
1

我有一個數據視圖Web部件,在列表的自定義編輯頁面上。我想抓取當前的URL並將其傳遞到下一頁,以便我可以返回到編輯屏幕。 我已按照以上說明以顯示當前頁面的URL:Sharepoint(MOSS)XSL - PageUrl參數未找到/顯示

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

在SharePoint Designer中的,該URL顯示和看起來很好。 HOwever,只要我真的通過網站查看它失蹤,它不會被顯示。

我創建了一個測試aspx頁面(沒有母版頁,只是一個空白的aspx),並且發生了完全相同的結果。 我甚至通過創建一個XSL變量來嘗試作弊,並使用select =「$ PageUrl」,再次在Designer中工作,而不是在網站上。 如何檢索URL?

回答

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

的這裏的問題是,參數:

<xsl:param name="PageUrl" /> 

...實際上並沒有在網頁上運行。即使你添加了ParameterBinding行(如上所述)。它確實出現在SP Designer中工作,但通過瀏覽器查看時,PageUrl參數返回空值或空值。用於返回當前頁面URL的正確參數是ServerVariable。因此,建立ParemeterBinding這樣的:

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

的PageAddr就是我指定的參數,它不會與PAGEURL一個混淆隨機名稱。接下來調用參數在樣式表中,像這樣:

<xsl:param name="PageAddr" /> 

現在,你可以在任何地方調用參數使用$ PageAddr您的XSLT代碼...

被警告這個參數不在SP設計工作,但會在瀏覽器中工作。

+0

可以通過用4個空格縮進代碼行來添加尖括號,或者可以使用'反引號'作爲嵌入代碼。 – 2013-07-24 00:33:13