隐藏未显示的项目'高度

时间:2018-03-23 18:10:33

标签: html xslt html-table

我正在编写自定义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>

1 个答案:

答案 0 :(得分:1)

您正在为每一行创建行,无论其ID如何。尝试删除choose元素并使用谓词将选择逻辑添加到变量中。