我正在编写自定义XSLT附加到SharePoint 2010中的列表。 它获取当前页面的URL,并根据页面URL的查询字符串过滤检索到的项目。
例如,参与页面网址为http://sitename.com?ID=5
它将返回一个项目列表,但仅显示项目ID = 5。
但是,div显示其余未显示项目的额外高度。 有没有办法可以实现XSLT或HTML,以便不显示未显示项目的高度。
这是XSLT://在3/26/2018更新
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl"
xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
<xsl:output method="html" indent="no"/>
<xsl:param name="ListUrlDir"/>
<xsl:param name="PageUrl"/>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[@ID = substring-after($PageUrl,'=')]"/>
<xsl:template match="/">
<table cellspacing="0" cellpadding="0">
<xsl:for-each select="$Rows">
<xsl:sort select="@Group"/>
<xsl:variable name="newGroup" select="ddwrt:NameChanged(string(@Group),1)"/>
<tr id="group0">
<th class="my-rteElement-PubColoredHeading2" colspan="99"><xsl:value-of select="@Group"/></th>
</tr>
<tr id="group1">
<td class="ms-gb" colspan="99" style="border:none">
<a onclick="javascript:ExpGroupBy(this);return false;" href="{$ListUrlDir}/dispform.aspx?id={@ID}">
<img border="0" name="expand" alt="expand" src="/_layouts/images/plus.gif" style="float:left;margin:2px 5px 0 0;"/>
<span style="float:left;">
<xsl:value-of select="@Title" disable-output-escaping="yes"/>
</span>
</a>
</td>
</tr>
<tr class="" style="display:none;">
<td style="width:14px;">
</td>
<td class="ms-vb">
<xsl:value-of select="@Body" disable-output-escaping="yes"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
您正在为每一行创建行,无论其ID如何。尝试删除choose元素并使用谓词将选择逻辑添加到变量中。