• [Umbraco] umbraco中如何分页


    分页功能应该说是web开发中最基本的功能了,常规的做法是通过查询sql语句进行分页数据显示。但在umbraco中却不是这样子的。而且通过xpath中的postion来定位。如下代码

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <!DOCTYPE xsl:Stylesheet [ &lt;!ENTITY nbsp “&#x00A0;”> ]>
    <xsl:stylesheet version=”1.0″
    xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”
    xmlns:msxml=”urn:schemas-microsoft-com:xslt”
    xmlns:umbraco.library=”urn:umbraco.library”
    exclude-result-prefixes=”msxml umbraco.library”>
         <xsl:output method=”xml” omit-xml-declaration=”yes”/>
       <xsl:param name=”currentPage”/>
    
       <xsl:template match=”/”>
       <xsl:variable name=”recordsPerPage” select=”10″/>
       <xsl:variable name=”pageNumber” >
    <xsl:choose>
    <!– first page –>
    <xsl:when test=”umbraco.library:RequestQueryString(’page’) &lt;= 0 or string(umbraco.library:RequestQueryString(’page’)) = ” or string(umbraco.library:RequestQueryString(’page’)) = ‘NaN’”>0</xsl:when>
    <!– what was passed in –>
    <xsl:otherwise>
    <xsl:value-of select=”umbraco.library:RequestQueryString(’page’)”/></xsl:otherwise>
    </xsl:choose>
       </xsl:variable>
       <xsl:variable name=”numberOfRecords” select=”count($currentPage/node)”/>
       <!– The fun starts here –>
    <ul>
    <xsl:for-each select=”$currentPage/node [string(data [@alias=’umbracoNaviHide’]) != ‘1′]”>
    <xsl:if test=”position() &gt; $recordsPerPage * number($pageNumber) and position() &lt;= number($recordsPerPage * number($pageNumber) + $recordsPerPage )">
    <li><a href=”{umbraco.library:NiceUrl(@id)}”> <xsl:value-of select=”@nodeName”/> </a> </li>
    </xsl:if>
    </xsl:for-each>
    </ul>
       <xsl:if test=”$pageNumber &gt; 0″>
    <a href=”?page{$pageNumber -1}”>previous </a> </xsl:if>
       <xsl:if test=”(($pageNumber +1 ) * $recordsPerPage) &lt; ($numberOfRecords)”> <a href=”?page={$pageNumber +1}”>next</a> </xsl:if>
    </xsl:template>
       </xsl:stylesheet>

    简单说明

    count($currentPage/node)就是计算根节点下以node开头的childNode的个数

    position()指的是当前节点的位置,即从1开始的数值

  • 相关阅读:
    How To Install a 2 Finger Gripper on ABB Robots
    Guide: How to Set Up I/O on an ABB Robot with an IRC5 Controller
    SIGVerse
    unity与ROS SIGVerse 仿真
    论文阅读:Automated acquisition of structured, semantic models of manipulation activities from human VR demonstration
    Python2.7+ROS环境:AttributeError:‘module’ has no attribute ‘CALIB_HAND_EYE_TSAI
    Qt音视频开发39-人脸识别在线版
    Qt音视频开发38-USB摄像头解码linux方案
    Qt音视频开发37-USB摄像头解码ffmpeg方案
    由浅入深讲述MVVM
  • 原文地址:https://www.cnblogs.com/younghan/p/3417673.html
Copyright © 2020-2023  润新知