Xslt 如何:在Sharepoint搜索XSL中使用querystring参数?
这是我第一次尝试处理XSL,所以请客气一点:) 我正在修改SharePoint 2010 peoplesearch结果页,特别是“在组织浏览器中查看”行。我已将orgbrowser Web部件添加到我们的主站点,不想为该链接将用户引导到mysite 以下是修改后的代码:Xslt 如何:在Sharepoint搜索XSL中使用querystring参数?,xslt,search,sharepoint-2010,query-string,Xslt,Search,Sharepoint 2010,Query String,这是我第一次尝试处理XSL,所以请客气一点:) 我正在修改SharePoint 2010 peoplesearch结果页,特别是“在组织浏览器中查看”行。我已将orgbrowser Web部件添加到我们的主站点,不想为该链接将用户引导到mysite 以下是修改后的代码: <a id="{concat($currentId, '_OrgBrowserLink')}" href="/search/pages/orgbrowser.aspx?accountname={string(account
<a id="{concat($currentId, '_OrgBrowserLink')}" href="/search/pages/orgbrowser.aspx?accountname={string(accountname)}">» <xsl:value-of select="$ViewHiearchyLabel" /></a>
上面的代码运行良好。但是,我发现添加搜索结果查询字符串参数时遇到问题。参数为“k”
- 我发现我无法附加“&”符号(因为它很可能是一个特殊的保留字符)。我已尝试“%26”,但它之前的accountname参数似乎有问题(我收到一个“用户未找到”相关ID错误)
- 我对xsl的工作原理了解有限,似乎无法掌握查询字符串参数“k”。有人能启发我吗
谢谢大家不幸的是,People Search Results web部件没有将当前url作为参数传递。但是,它会传递其他几个确实包含当前查询字符串的URL参数。因此,解决方案是使用其中之一,解析出'k'参数中的值并将其附加到URL 我使用了$NameSortUrl XSL参数 我使用函数前的子字符串和函数后的子字符串并将值保存在变量中,从而解析出“k”参数的值:
<xsl:variable name="kVal" select="substring-before(substring-after($NameSortUrl, 'k='), '&')"/>
然后,我将此值附加到url,如下所示:
<a id="{concat($currentId, '_OrgBrowserLink')}" href="/search/pages/orgbrowser.aspx?accountname={string(accountname)}&k={$kVal}">
注意使用HTML编码来获取url(&)中的符号
希望这对将来的其他人有用