我正在尝试制作一个自定义过滤器,对SharePoint 2013博客中的作者(用户)进行排序。我正在使用XSL dataview并将其导出到Web部件。我有一个名为Author的列,它从Created By获取信息。当我单击Web部件中的用户时,它会显示所有帖子而不是所选作者。 URL是mysite / default.aspx?Author = FirstName LastName“。
代码(default.aspx):
<xsl:template match="/" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:SharePoint="Microsoft.SharePoint.WebControls">
<xsl:call-template name="dvt_1"/>
</xsl:template>
<xsl:template name="dvt_1">
<xsl:variable name="dvt_StyleName">RepForm3</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[not(@Author.title=preceding-sibling::Row/@Author.title)]" />
<xsl:call-template name="dvt_1.header">
<xsl:with-param name="Rows" select="$Rows" />
</xsl:call-template>
<div class="blogRefineByAuthorContainer">
<xsl:call-template name="dvt_1.body">
<xsl:with-param name="Rows" select="$Rows"/>
</xsl:call-template>
</div>
</xsl:template>
<xsl:template name="dvt_1.header">
<xsl:param name="Rows" />
<div class="blogRefineByAuthorEveryAuthor"><a href="default.aspx">Everyone</a></div>
</xsl:template>
<xsl:template name="dvt_1.body">
<xsl:param name="Rows"/>
<xsl:for-each select="$Rows">
<xsl:call-template name="dvt_1.rowview" />
</xsl:for-each>
</xsl:template>
<xsl:template name="dvt_1.rowview">
<div class="blogRefineByAuthorAuthorTitle">
<a href="default.aspx?Author={@Author.title}"><xsl:value-of select="@Author.title" /></a>
</div>
</xsl:template>
有什么想法可能是什么?在名字和姓氏之间,URL中有一个空格,但我认为它没有任何意义。我已尝试使用%20而没有任何结果。