Sharepoint (MOSS) XSL - параметр PageUrl не найден / не отображается

У меня есть веб-часть просмотра данных на настраиваемой странице редактирования списка. Я хочу получить текущий URL и передать его на следующую страницу, чтобы я мог вернуться к экрану редактирования. Я следовал этим инструкциям, чтобы отобразить URL текущей страницы:

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

Внутри Sharepoint Designer, URL отображается и выглядит нормально. Однако, как только я на самом деле просматриваю его через сайт, он пропадает, он вообще не отображается.

Я создал тестовую страницу aspx (без главной страницы, просто пустую aspx), и получился точно такой же результат. Я даже пытался обмануть, создав переменную XSL и, используя select = "$ PageUrl", снова работает в Designer, а не на сайте. Как я могу получить URL?

8.11.2009 21:50:21
2 ОТВЕТА

Я получаю 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
9.01.2012 20:04:11

Проблема здесь в том, что параметр:

<xsl:param name="PageUrl" />

... на самом деле не работает на веб-странице. Даже если вы добавили в строку ParameterBinding (как предложено выше). Он появится на работу в SP Designer, но при просмотре через браузер, параметр PAGEURL возвращает пустое или нулевое значение. Правильный параметр, чтобы использовать, чтобы возвратить URL текущей страницы, является ServerVariable. Так что установите ParemeterBinding так:

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

PageAddr - это просто случайное имя, которое я назначаю параметру, которое не следует путать с именем PageUrl. Затем вызовите параметр в таблице стилей, например, так:

<xsl:param name="PageAddr" />

Теперь вы можете вызывать параметр в любом месте вашего XSLT-кода, используя $ PageAddr ...

Имейте в виду, что этот параметр не работает в SP Designer, но будет работать в браузере.

1
24.07.2013 00:30:40
Можно добавить угловые скобки с помощью отступа строк кода на 4 пробела или, альтернативно, использовать backticksдля встроенного кода.
David Clarke 24.07.2013 00:33:13