0

这是我第一次尝试处理 XSL,所以请善待 :)

我正在修改 SharePoint 2010 人员搜索结果页面 - 特别是“在组织浏览器中查看”行。我已将 orgbrowser webpart 添加到我们的主站点,并且不想将用户定向到 mysite 以获取此链接。

这是修改后的代码:

<a id="{concat($currentId, '_OrgBrowserLink')}" href="/search/pages/orgbrowser.aspx?accountname={string(accountname)}">&#187; <xsl:value-of select="$ViewHiearchyLabel" /></a>

上面的代码工作正常。我发现我在添加搜索结果查询字符串参数时遇到问题。参数是“k”。

  • 我发现我不能附加“&”符号(因为它很可能是一个特殊的保留字符)。我已经尝试过“%26”,但这似乎弄乱了之前的 accountname 参数(我收到“未找到用户”相关 ID 错误)

  • 由于我对 xsl 工作原理的了解有限,我似乎无法掌握查询字符串参数“k”。有人可以启发我吗?

谢谢大家

4

1 回答 1

1

不幸的是,人物搜索结果 web 部件没有将当前 url 作为参数传递。但是,它确实传递了其他几个包含当前查询字符串的 URL 参数。所以解决方案是使用其中之一,解析出“k”参数中的值并将其附加到 URL。

我使用了 $NameSortUrl XSL 参数。

我通过使用 substring-before 和 substring-after 函数解析出“k”参数的值,并将值保存在变量中:

<xsl:variable name="kVal" select="substring-before(substring-after($NameSortUrl, 'k='), '&amp;')"/>

然后我将此值附加到 url,如下所示:

<a id="{concat($currentId, '_OrgBrowserLink')}" href="/search/pages/orgbrowser.aspx?accountname={string(accountname)}&amp;k={$kVal}">

请注意使用 HTML 编码来获取 url (&) 中的 & 符号。

希望这对将来的其他人有用。

于 2012-05-30T17:25:35.340 回答