但是我可以让 NewsTeasers 列出所有新闻并设置分页吗?
是的你可以。您可以修改现有的 NewsTeaser 函数或创建新函数。在“函数调用”选项卡上修改“Composite.News.NewsItem.GetNewsItemXml”函数调用,并使用下一个值指定下一个参数“ PageNumber ”和“ IncludePagingInfo ”:
<f:param name="PageNumber">
<f:function name="Composite.Web.Request.QueryStringIntegerValue">
<f:param name="ParameterName" value="Page" />
<f:param name="FallbackValue" value="1" />
</f:function>
</f:param>
<f:param name="IncludePagingInfo" value="True" />
在功能模板选项卡上添加模板以显示 PagingInfo:
<xsl:param name="pagingInfo" select="/in:inputs/in:result[@name='GetNewsItemXml']/PagingInfo" />
...
<xsl:if test="$pagingInfo/@TotalPageCount > 1">
<div class="Paging">
<xsl:apply-templates select="$pagingInfo" />
</div>
</xsl:if>
...
<xsl:template match="PagingInfo">
<xsl:param name="page" select="1" />
<xsl:if test="$page < @TotalPageCount + 1">
<xsl:if test="$page = @CurrentPageNumber">
<span><xsl:value-of select="$page" /></span>
</xsl:if>
<xsl:if test="not($page = @CurrentPageNumber)">
<a href="?Page={$page}"><xsl:value-of select="$page" /></a>
</xsl:if>
<xsl:apply-templates select=".">
<xsl:with-param name="page" select="$page+1" />
</xsl:apply-templates>
</xsl:if>
</xsl:template>
有关如何将分页添加到 XSLT 的更多信息,请阅读这篇文章 - http://docs.composite.net/XSLT/SortingAndPaging