繁体   English   中英

限制XSLT项目中的行数

[英]Limit the number of lines in XSLT item

在SharePoint 2013中,我想使用Data View XSLT Web部件来限制每个项目的行数(而不是通常返回的项目数)。 我在JavaScript中提出了一些建议,以查找div高度并将其划分为line height属性,但是由于我使用的是XSL,所以我想知道是否还有其他方法? 我也在CSS中寻找了一些解决方案,但是那里什么也没有。

这是XSLT(我想限制从div“ AdministrativePosts”获得的行数):

<Xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema"xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal">
<xsl:output method="html" indent="no"/>
<xsl:decimal-format NaN=""/>
<xsl:param name="dvt_apos">&apos;</xsl:param>
<xsl:param name="ManualRefresh"></xsl:param><xsl:variable name="dvt_1_automode">0</xsl:variable>
<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:choose>
<xsl:when test="($ManualRefresh = 'True')">
            <table width="100%" border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td valign="top">
                        <xsl:call-template name="dvt_1"/>
                    </td>
                    <td width="1%" class="ms-vb" valign="top">
                        <img src="/_layouts/15/images/staticrefresh.gif" id="ManualRefresh" border="0" onclick="javascript: {ddwrt:GenFireServerEvent('__cancel')}" alt="Click here to refresh the dataview."/>
                    </td>
                </tr>
            </table>
        </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="dvt_1"/>
        </xsl:otherwise>
                </xsl:choose>
</xsl:template>

            <xsl:template name="dvt_1">
                <xsl:variable name="dvt_StyleName">Table</xsl:variable>
                <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>
                <xsl:variable name="RowLimit" select="1" />
                <div class="AdministrativePosts">                   
                    <xsl:call-template name="dvt_1.body">
                        <xsl:with-param name="Rows" select="$Rows"/>
                        <xsl:with-param name="FirstRow" select="1" />
                        <xsl:with-param name="LastRow" select="$RowLimit" />
                    </xsl:call-template>
            </div>
        </xsl:template>
                <xsl:template name="dvt_1.body">
                    <xsl:param name="Rows"/>
                    <xsl:param name="FirstRow" />
                    <xsl:param name="LastRow" />
                    <xsl:for-each select="$Rows">
                        <xsl:variable name="dvt_KeepItemsTogether" select="false()" />
                        <xsl:variable name="dvt_HideGroupDetail" select="false()" />
                        <xsl:if test="(position() &gt;= $FirstRow and position() &lt;= $LastRow) or $dvt_KeepItemsTogether">
                            <xsl:if test="not($dvt_HideGroupDetail)" ddwrt:cf_ignore="1">
                                <xsl:call-template name="dvt_1.rowview" />
                        </xsl:if>
                    </xsl:if>
                </xsl:for-each>
</xsl:template>
                            <xsl:template name="dvt_1.rowview">     
            <xsl:value-of select="@Body" disable-output-escaping="yes"/>
    </xsl:template>
        </xsl:stylesheet></Xsl>

结果如下:

Lorem Ipsum只是印刷和排版行业的伪文本。 自1500年代以来,Lorem Ipsum一直是行业的标准伪文本,当时一位不知名的打印机拿起一个厨房,将其打乱成一本样本书。 它不仅生存了五个世纪,而且在电子排版方面也取得了飞跃,但基本上没有改变。 它在1960年代流行,发行了包含Lorem Ipsum段落的Letraset表格,最近又发布了包括Alres PageMaker在内的桌面发行软件,包括Lorem Ipsum的版本。

但是我希望它仅显示前五行,不必理会div的宽度,因此字符限制在这里不起作用。

但是我希望它仅显示前五行,不必理会div的宽度,因此字符限制在这里不起作用。

你不是一个人。 以下是一些类似的问题:

祝好运。

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM